SEATTLE -- Eric Thames had already struck out three straight times when he came to the plate with two outs in the ninth inning to face baseball's most dominant closer.
The Seattle Mariners were all even with the Tampa Bay Rays after Justin Smoak's sacrifice fly off Fernando Rodney, who came into the game with a 0.82 ERA and the American League lead in saves. Chone Figgins stood on third, and Thames fell into an 0-2 hole.
Thames took a pitch, and then focused on low and away. He was able to flip Rodney's next changeup into short right field to score Figgins, giving the Mariners a 3-2 win over Tampa Bay on Tuesday night that snapped the Rays' seven-game winning streak.
"Casper (Wells) said to me in the seventh inning, 'Hey, in the ninth, you'll be the hero, don't worry about it,'" Thames said. "It's crazy how this game works."
Kyle Seager started the winning rally with a single to right field off Rodney, and pinch hitter Figgins pushed a bunt that first baseman Carlos Pena fielded. Pena glanced at second, pivoted, double-clutched and then threw wide of first base.
Seager sprinted to third, and Figgins advanced to second. Smoak's deep fly to center field scored Seager to tie the game and gave Rodney (2-2) his first blown save since May 26 -- ending the closer's run of 22 consecutive saves.
"(Carlos) makes that play 100 out of 100 times," Tampa Bay manager Joe Maddon said. "That was the 101st time, I guess, right there."
Thames' hit into short right field scored Figgins and made a winner of Stephen Pryor (2-0), who worked 1 2/3 innings.
Smoak's contribution to the end of Rodney's streak was as surprising as Pena's error. He found out he was coming back to the majors Monday when he was replaced by a pinch hitter while playing minor league ball in Memphis. He flew to Seattle on Tuesday morning and doubled on the first pitch he saw.
Smoak also walked, and both outs he made were on deep fly balls. He was hitting just .189 this year going into the game.
"I knew something was going to happen tonight where it was going to come up to me at some point in the game," Smoak said. "It's good to come through like that."
Tampa Bay's Matt Moore allowed one run and six hits in seven innings. He struck out nine and walked one. The Rays' staff has the best ERA in the majors since the All-Star break.
Kevin Millwood gave up two runs and eight hits in seven innings for Seattle. He struck out a season-high eight.
Four pitches into the game, Tampa Bay took a 1-0 lead. Desmond Jennings singled and B.J. Upton followed with a broken-bat fly ball to left that became a triple when Trayvon Robinson dove but failed to make the catch.
Jennings scored, and Upton had his second triple of the season. Evan Longoria's sacrifice fly to right scored Upton.
Miguel Olivo followed with a double that drove in Smoak and pulled the Mariners within 2-1 in the second inning.
Moore and Millwood controlled things from there.
Millwood wriggled out of trouble again in the fifth when Jennings and Upton hit consecutive singles. Millwood struck out Matt Joyce and Longoria to end the inning. He struck out Keppinger and Pena in the sixth, setting a season high with eight strikeouts. Joyce struck out three times.
The Rays pressured Millwood more in the seventh when Roberts and Jose Molina began the inning with singles. Jennings, already 3-for-3, bounced a high grounder toward third base to Seager, who started a double play. Millwood then retired Upton.
The Mariners placed 1B Mike Carp on the 15-day disabled list because of a strained left groin. ... The Rays have the lowest team ERA, bullpen ERA and opponents' batting average since the All-Star break. ... Tampa Bay also leads the majors in strikeouts (284) since the break. ... The Mariners promoted this year's top draft pick, Mike Zunino, from rookie-level Everett to Double-A Jackson. ... Seager has a hit in eight consecutive home games.