MIAMI - The way Marlins pitcher Josh Johnson was throwing for eight innings, Mets backup catcher Kelly Shoppach didn't think his team had "much of a chance."
But the Mets erupted for four runs in the ninth to earn a 5-3 win over Miami before 26,402 fans at Marlins Park.
Marlins manager Ozzie Guillen took Johnson out after eight innings and 105 pitches, inserting normally reliable closer Steve Cishek, who had converted 11 of 13 save chances to that point in the season.
But Daniel Murphy and David Wright opened the ninth with singles. After Friday night's hero, Ike Davis, struck out, Lucas Duda hit a run-scoring single to center.
"We had some great at-bats in the ninth," Mets manager Terry Collins said.
Mike Baxter then fouled out for the second out, giving Marlins fans hope that their team would escape with a 3-2 win.
That's when Andres Torres drew a walk to load the bases and bring up Stoppach.
"Andres did a great job because he forced Cishek to throw a lot of pitches," Stoppach said of Torres' seven-pitch at-bat. "I got a good look at those pitches from the side (on the on-deck circle)."
That certainly helped, especially since Stoppach had never faced Cishek before.
The result was a two-run, game-winning single up the middle for Stoppach. A third run scored on the play on a fielding error by Marlins center fielder Justin Ruggiano.
"It's disappointing," Cishek said. "(Our) team played awesome today, and going in and getting that extra run makes it a little more comfortable.
"But I didn't fool anyone today. They squared it up pretty good, and ground balls didn't find anyone. It happens."
The Mets' outburst - and closer Frank Francisco's 1-2-3 effort in the bottom of the ninth inning - spoiled Johnson's effort. The Marlins' ace allowed three hits, two walks and one run, striking out four.
The win went to reliever Ramon Ramirez (3-3), and Francisco earned his 23rd save. But Collins also credited starter Jeremy Hefner with a solid performance.
"I thought tonight, location-wise, was the best I've seen him pitch," Collins said of Hefner, who allowed six hits, one walk and two runs in six innings. "He was down in the zone with all his pitches and threw his breaking ball behind in the count."
Hefner said he has been working hard between starts with the Mets coaching staff.
"I'm just trying to take advantages of the opportunities I've been given," said Hefner, a late-season call-up from Triple A. "In five or six days, whenever I start again, I will try to do that again."
Earlier, the Marlins had snapped a 1-1 tie in the sixth. Jose Reyes started the rally with a one-out single to left and sped to third when Carlos Lee blooped a single to right field.
Reyes scored on an infield single by Giancarlo Stanton. Davis came in on the soft grounder and looked toward home before he figured out he had no chance to get the speedy Reyes. By the time he flipped to first, Hefner had trouble locating the bag, and Stanton was safe.
The Marlins added an extra run in the eighth, when Reyes singled, stole a base and scored on Lee's run-scoring hit to right.
Johnson had a no-hit shutout working until the fifth. But Baxter hit a liner to left-center and hustled into a double. He advanced to third on a groundout to second by Torres. The Marlins brought the infield in, but Josh Thole got an RBI when his groundout to shortstop forced Reyes to move to his left.
The Marlins scored first, pushing across a run in the third inning. Donovan Solano, who had his 12-game hit streak ended Friday night, started the inning with a line single to center.
The Marlins avoided a likely double play by calling for a hit and run. John Buck grounded out to shortstop, but Solano advanced to second. After Johnson struck out, leadoff batter Bryan Petersen lofted a long fly to deep left-center field. Torres, in center field, made a diving attempt, but he failed to catch the run-scoring double.
After a walk to Ruggiano, the Marlins nearly drove in another run when Reyes lined a hard shot to right field. But Baxter came in to make a shoe-top grab to end the inning.
The Marlins' Lee, not known for his speed or defense, put both of those traits on display early in the game. He ended the top of the fourth inning by catching a hard-hit ball by Duda. In the bottom of the inning, he advanced to second on a wild pitch that scooted just a few feet in front of Thole, the Mets' catcher.
NOTES: Davis has 25 homers, which is the sixth-best single-season total ever by a Mets first baseman. Fifth on the list is Mo Vaughn, who hit 26 in 2002. ... Davis has three homers and six RBI in his past six games. ... Johnson, who got a no-decision, has an 8-2 career record against the Mets. ... R.A. Dickey, who beat the Marlins Friday night, is the first Mets pitcher to win at least 17 games in a season since Al Leiter in 1998. ... Thole snapped an 0-for-30 drought with a single in the eighth.