Kole Calhoun hit a tiebreaking double in the 10th inning and Justin Upton added a two-run homer to cap a four-run rally that carried the Angels past the San Diego Padres 6-3 on Monday night.
Jose Briceno homered early for the Angels, who got 7 1/3 solid innings from starter Andrew Heaney. Upton robbed pinch-hitter Eric Hosmer of a go-ahead homer in the eighth, making a catch above the left-field wall to leave Hosmer with a tying sacrifice fly.
Calhoun drove in Eric Young Jr. with a ground-rule double to put the Angels ahead. Shohei Ohtani scored on David Fletcher's perfect squeeze bunt, and Upton made it 6-2 when he connected off Craig Stammen (5-2) for his 25th homer.
Briceno opened the 10th with a double but was thrown out at third by catcher Austin Hedges on Young's bunt. Briceno was originally ruled safe, but the call was overturned after a replay review.
Young then stole second and Ohtani drew a pinch-hit walk to set up Calhoun's big hit.
Blake Parker gave up a solo homer to Hosmer in the bottom half before earning his 12th save.
The Padres failed to score after putting runners on first and second in the ninth when reliever Cam Bedrosian (4-2) got Freddy Galvis to foul out.
San Diego pulled even at 2 in the eighth when Galvis scored on Hosmer's deep sacrifice fly. Galvis led off the inning with a single and went to third on Jose Pirela's single.
Galvis hit a solo homer off Heaney in the third, just beyond the reach of a leaping Upton. One day earlier, Galvis had a grand slam in San Diego's 9-3 win over the Phillies.
Briceno homered in the top of the third, and Young scored on a wild pitch by Padres starter Clayton Richard.
Winless on the road this season, Heaney held San Diego to two runs and four hits. In his previous 10 starts away from home, he was 0-5 with a 5.30 ERA.