With one out in the ninth, Jean Segura singled to center field. That brought up Haniger, who lined a 1-0 pitch from Oliver Drake (1-1) over the left field wall to give the American League West-leading Mariners a sweep of the three-game series. It was Haniger's 16th home run of the season.
Nelson Cruz and Ryon Healy also homered for Seattle, which rallied from a 6-4 deficit by scoring in each of the final three innings.
Left-hander Roenis Elias (2-0) pitched two scoreless innings for the victory. The Mariners have won four straight and 11 of their last 13 games, including six of the last seven.
Healy homered into second deck in left field with one out in bottom of eighth to tie it at 6-6. It was Healy's 13th home run of the season.
The Angels had earlier rallied from a 4-1 deficit to take a 6-4 lead, breaking the tie with solo homers from Nolan Fontana and Chris Young in the seventh inning. Fontana replaced starting shortstop Zack Cozart in the fourth inning after Cozart suffered a left shoulder strain.
Angels right-hander Garrett Richards left after two innings with left hamstring tightness. Richards gave up two runs on four hits, with no walks and two strikeouts.
The Mariners' Cruz hit a two-run homer, his 16th, off right-hander Noe Ramirez in the third to make it 4-1.
David Fletcher hit a two-run triple to right-center field to pull the Angels within 4-3 in the fourth, and they tied it in the sixth on Luis Valbuena's sacrifice fly.
After the Angels took the lead in the top of the seventh, the Mariners got one run back in the bottom of the inning but had the potential tying run thrown out at the plate to end the threat.
Dee Gordon led off with a single up the middle off left-hander Jose Alvarez, who was then replaced by right-hander Blake Parker. Jean Segura doubled to right field to score Gordon, with Segura taking third on the throw to the plate. Parker struck out Haniger on three straight pitches for the first out, then Cruz lofted a fly ball to shallow left field.
Segura bluffed a tag, but when Justin Upton's throw was wide of the plate, he tried to score. Catcher Martin Maldonado flipped the ball to third baseman Fletcher, who was able to tag Segura on the arm just before he reached home. The Mariners challenged the call, but it was upheld on video review.
Mariners left-hander Marco Gonzales went five innings, allowing three runs on seven hits. He walked two and struck out seven.
--Field Level Media