Rivera broke a tie for most All-Star saves with Dennis Eckersley.
Adam Jones drove in the winning run in the eighth inning after Curtis Granderson tripled off the base of the left-field fence.
The American League is now 12-0-1 in the last 13 All-Star games and will have home field in the World Series. The American League's unbeaten streak is the longest in the game's history.
Jonathan Papelbon (1-0) got the win thanks to Carl Crawford's homer-saving catch in left. Crawford's catch earned him the All-Star Game MVP Award.
San Diego's Heath Bell (0-1) took the loss, allowing two hits and one run with one strikeout and one walk during the eighth inning. San Francisco's Tim Lincecum started for the National League and gave up two runs -- one earned -- on two hits in two innings.
The NL scored all three of its runs in the second inning of Roy Halladay. David Wright started the outburst with a two-out single. Prince Fielder, who won Monday's home run derby, capped the inning with a ground-rule double.
Copyright 2009 by United Press International.