Haniger dashed home to score the go-ahead run on a grounder in the eighth inning, then made a diving catch for the final out that gave the Mariners a 3-2 win over the Yankees.
Haniger started the eighth with a walk off reliever Dellin Betances (4-5) before stealing second by reaching in with his right hand at the last second.
"I was just trying to miss the tag," Haniger said. "I knew if I went in with my left hand it would have been a lot closer."
Haniger reached third on Jean Segura's sacrifice bunt. With the infield in, Robinson Cano hit a broken-bat roller up the middle. Haniger was running on contact and shortstop Adeiny Hechavarria made a quick throw home, but Haniger just got his right hand on the plate before the tag from catcher Austin Romine.
"I just wanted to get as low as possible to avoid the tag by making the catcher reach as far as possible," Haniger said. "I take pride in every facet of the game. I had some great coaches coming up that taught me how to play the game right."
Edwin Diaz pitched the ninth for his 54th save and 27th one-run save, both the most in baseball. But it took a diving grab by Haniger on Giancarlo Stanton's fly ball to stop a possible New York rally.
Andrew McCutchen was hit by a pitch with two outs before Haniger's catch off Stanton's broken-bat fly to shallow right.
"I had to play real deep to respect his power," Haniger said. "It kind of blooped in there and hauled over as fast as I could and made the play. Once I got to full speed, I felt I was going to get it."
Haniger, an All-Star for the first time this year, has 24 homers and 85 RBI this season.
"Mitch is a very good all-around player," manager Scott Servais said. "We all know about his power, but his defense and the way he runs the bases makes him a heck of a player."
The loss kept the Yankees from sweeping the three-game series and leaves New York only 2 1/2 games ahead of Oakland for the league's top wild-card spot.
Miguel Andujar's double down the left field line gave the Yankees a 1-0 lead in the first inning after Stanton hit a towering pop to shallow left that dropped for a double.
The Yankees loaded the bases with three singles to start the fourth against starter Erasmo Ramirez, but only score one run off a walk to McCutchen, tying the game at 2-2.
"Disappointing, no question," Yankees manager Aaron Boone said. "That fourth inning, had them on the ropes there and a chance to do some damage, and just couldn't get that hit to push us over. It was a chance to have a great weekend. Obviously, a tough one here."
Brett Gardner was ejected after his at-bat in the ninth inning when he had a heated argument with plate umpire Jeremie Rehak after he struck out. Garner didn't like the called second strike.
"I just felt like that was a big pitch. My at-bat went from being 3-0 to being 2-1 against a guy that throws 100," Gardner said. "I let my emotions get the best of me and was frustrated a little bit, and obviously, I said too much."
Yankees: Andujar was the DH Sunday after leaving the game Saturday night in the ninth inning when he was hit by a pitch on the right forearm. ... SS Didi Gregorius, who came off the 10-day DL Friday, did not start after starting Saturday night before leaving the game in the seventh inning. He pinch hit in the ninth and grounded out. Boone has said they plan to bring Gregorius back gradually.
Mariners: Cano started at second base after leaving Saturday's night's game in the ninth when he was hit by a pitch on the left foot. ... Servais wasn't sure when RHP Felix Hernandez will make his next start after leaving Saturday's game in the fifth inning because of tightness in his right hamstring. "We'll see where we slot him back in," Servais said. "He might need an extra day. We'll wait to pencil him in for his next start."
Yankees: The road trip continues with a three-game series at Minnesota. LHP J.A. Happ (14-6, 3.90 ERA) will make his eighth start with New York on Monday and his 28th of the season. Happ is 5-0 with a 3.10 ERA in seven starts with the Yankees.
Mariners: After a day off Monday, Seattle ends the homestand with a two-game series against the Padres that starts Tuesday. LHP Marco Gonzales (12-9, 4.32 ERA) is expected to come off the 10-day DL (neck strain) and make his 26th start to the season Tuesday. Gonzales lost four consecutive starts before going on the DL Aug. 27, allowing 23 earned runs over 20 innings.
More AP MLB: https://apnews.com/tag/MLB and https://twitter.com/AP-Sports
Ichiro Suzuki back in Mariners camp at 45 with chance to play at home
Ichiro Suzuki, in Mariners camp on a minor league deal, checked in at camp with only 7 percent body fat. "He looks unbelievable," GM Jerry Dipoto said.
Giants agree to deal with Cameron Maybin
The San Francisco Giants have agreed to a deal with outfielder Cameron Maybin to bring the 32-year-old to camp as a non-roster invitee.
Tebow advised Murray to follow his heart, passion
Tim Tebow reveals the advice he gave to Kyler Murray in regards to deciding between baseball and football.
Tebow: The AAF keeps calling me
Tim Tebow says that the Alliance of American Football keeps calling him to play, but insists he is committed to playing baseball.
Cardinals expect Marcell Ozuna to be ready Opening Day
St. Louis Cardinals left fielder Marcell Ozuna is expected to be ready for Opening Day. Ozuna underwent offseason shoulder surgery and will begin the spring on a limited throwing program.
Kurkjian's favorite spring training stories
Tim Kurkjian expresses his love for spring training and his favorite memories from covering it for 38 years.