ST. PETERSBURG, Fla. — Mitch Haniger moved from center to right field as part of protective defensive moves in the seventh inning.
It paid off for the surging Seattle Mariners.
Haniger threw out Johnny Field at the plate to end the game, and the Mariners held off the Tampa Bay Rays 5-4 Sunday for their 17th win in 22 games.
Waved home, Field tried to score from first on a two-out, bloop single by Carlos Gomez. Haniger rushed in, made a sliding try and then scrambled to retrieve the ball.
Haniger unleashed a one-hop throw home that beat Field by a wide margin. Catcher Mike Zunino made the tag.
"Crazy play to end the game, you don't often see it end that way," Mariners manager Scott Servais said. "Haniger had a nice recovery, made a very accurate throw and as a catcher, got to make sure he catches the ball."
Tampa Bay third base coach Matt Quatraro took the blame for the play.
"That was completely my decision," he said.
Rays manager Kevin Cash said it was "over-aggressive."
"But saying that, we've got a lot of guys that are trying to do a lot right now to impact us in a positive way," he said.
James Paxton struck out 10 and Kyle Seager hit a go-ahead home run for Seattle. Nelson Cruz and Zunino also homered for the Mariners, who took three of four from Tampa Bay.
Paxton (6-1) gave up three runs and five hits in seven innings. The left-hander has allowed just 14 earned runs over 63 2/3 innings in going 5-0 over his last nine starts.
"After the third inning, I had a little forearm cramp going on and I kind of went out a little hesitant in the fourth inning because I didn't want to let it rip and have something go on me," Paxton said. "Then I figured out that it was fine and I was able to get back to letting it rip again."
The defensive help from Haniger helped Edwin Diaz post his 23rd save.
Seager gave Seattle a 5-3 lead on his seventh-inning drive off Jose Alvarado (0-3).
Wilson Ramos cut the Rays' deficit to 5-4 with an RBI single in the eighth off former Tampa Bay closer Alex Colome.
Tampa Bay, which stopped an eight-game skid Saturday, got a homer from C.J. Cron.
"The losses are piling up," Cash said. "We can play better baseball than what we've done the past 10 days."
Seattle is 21-9 in one-run games, while Tampa Bay dropped to 9-17.
According to baseballreference.com data dating to 1908, the Mariners are the only team with 21 one-run wins through the first 65 games of a season.
Zunino ended Nathan Eovaldi's day by sending the right-hander's 102nd pitch into the left field seats for a two-run homer that made it 3-all in the sixth.
Eovaldi, making his third start since returning from a second Tommy John surgery in August 2016, allowed three runs and four hits.
After Field doubled in the third and later scored on a grounder by Mallex Smith, Cron had a solo drive and Jake Bauers hit an RBI double that put Tampa Bay up 3-1 in the fourth.
Cron has three hits — all homers — in his last 24 at-bats.
Cruz homered for the second consecutive game, a second-inning solo shot.
Rays shortstop Daniel Robertson experienced left hamstring tightness running out a grounder in the first and was replaced by Joey Wendle.
"I don't think it's anything serious," Robertson said.
Mariners: Servais said RHP Dan Altavilla has a right forearm flexor mass strain and will be "down for a little while."
Rays: Gomez struck out as a pinch-hitter in the eighth, one day being involved in a collision with Bauers while making a diving catch on a foul ball. Gomez said his shin and shoulder are both a little sore.
Rays SS Adeiny Hechavarria (right hamstring strain) is scheduled to play for Class A Charlotte on Monday and will be joined by CF Kevin Kiermaier (right thumb torn ligament) Tuesday.
Mariners RF Ben Gamel made diving catches on balls hit by Cron (fifth inning) and Ramos (sixth).
Mariners: RHP Wade LeBlanc (1-0) will face Angels LHP Andrew Heaney (3-4) Monday night.
Rays: Tampa Bay decided to have LHP Ryan Yarbrough (4-2) start instead of using a bullpen day Monday night against Toronto RHP Sam Gaviglio (2-1).