Mariano Rivera pitched a perfect eighth inning in his final All-Star appearance, Jose Bautista, J.J. Hardy and Jason Kipnis drove in runs to back a night of pulsating pitching, and the American League beat the National League 3-0 on Tuesday night.