Fernando Rodney had converted 22 straight save opportunities, but that streak came to a crashing halt for the Tampa Bay Rays closer Tuesday night.

Carlos Pena committed a crucial error in the bottom of the ninth inning and Eric Thames capped a two-run rally in the final frame with a two-out RBI single, as the Seattle Mariners won, 3-2.

Justin Smoak tied the game with a sacrifice fly, and Rodney (2-2) ended up suffering his first blown save since May 26, as the Rays had their season-high seven-game winning streak broken.

Rodney was in line for his major league-leading 38th save, but Kyle Seager singled to right field leading off the bottom of the ninth. Pinch-hitter Chone Figgins then put down a bunt that went between the mound and first base. Pena's soft overhand throw was high to Sean Rodriguez at first base and the Mariners had two runners in scoring position.

"That's a play that Carlos makes 100 out of 100 times," Rays manager Joe Maddon said. "I don't know exactly what had happened, it was very routine."

Smoak then lifted a sacrifice fly to center before Miguel Olivo struck out swinging.

Thames fouled off the first two pitches and then took a ball before hitting a soft liner into right-center field to give the Mariners their eighth win in their last nine home games.

"That's arguably the best closer in the game right now," Mariners manager Eric Wedge said. "(Thames) did a good job staying in the path of the baseball and got enough of it to get it over the infielder's head."

Kevin Millwood had a season-high eight strikeouts over seven solid innings. Stephen Pryor (2-0) pitched the final 1 2/3 innings to get the win.

Matt Moore struck out nine batters over seven strong innings, but the Rays lost for the third time in their last 13 tries. Moore, who scattered six hits and allowed a run, has an 0.73 ERA over his last four starts.

"Matt did such an unbelievable job today. It hurts because I wanted him to get that win, and for the team, we're playing so well, I just wanted to keep it going," Pena said. "It's one of those mistakes that really, really hurts."

B.J. Upton had an RBI triple during a two-run first inning for the Rays, who started the game with consecutive hits to take the early lead. Desmond Jennings singled to left field and Upton followed by smashing a ball down the line. Left fielder Trayvon Robinson couldn't make the diving catch.

Two batters later, Evan Longoria hit a sacrifice fly to right field.

Smoak, playing in his first major league game since July 23, doubled down into the corner in left field with two outs in the second inning. Olivo then doubled to left field.

After giving up an infield single to Dustin Ackley in the fifth inning, Moore retired the final eight batters he faced.

Joel Peralta retired the side in order in the eighth frame.

Game Notes

The Mariners placed first baseman Mike Carp on the 15-day disabled list and recalled Smoak from Triple-A Tacoma ... The Rays need a win Wednesday to capture their fifth straight road series. They haven't lost a series on the road since June 25-27 at Kansas City ... The Rays were 0-for-9 with men in scoring position.