"We were happy to squeeze one out. The ninth inning is always different, but we got out of it," Marlins manager Fredi Gonzalez said.
Matt Lindstrom escaped a bases-loaded jam by getting pinch-hitter Omir Santos on a game-ending popup. In a curious move by Mets manager Jerry Manuel, the inexperienced Santos batted for fellow catcher and right-handed hitter Ramon Castro, who had two hits and an RBI.
"I thought Santos had a better shot," Manuel said. "When you have a little shorter swing you have a better chance against a guy throwing in the upper 90s [mph]."
Santos was out in the bullpen, where he had just warmed up a reliever, when the phone rang summoning him to hit. Told to take his time, he hustled up the tunnel and finally emerged from the dugout after a break in the action.
"I was trying to delay the game, too," Manuel said. "I was trying to do anything I could to get the guy off a little bit, but it didn't work."
New York finished 1-for-11 with runners in scoring position and stranded 14 overall, a recurring problem all season.
Putz (1-2) entered in the eighth and walked his first two batters before Ronny Paulino's sacrifice advanced both runners. Ross lined a single up the middle, sending Florida (13-8) to its second consecutive victory following a seven-game skid.
Missing star shortstop Hanley Ramirez, the Marlins took two of three from New York for the second time this season and improved to 13-5 against the NL East.
"To come in here to New York and take two out of three shows that we are not going to let this thing snowball, and we were able to do it facing one of the best pitchers in the National League," Ross said.
The Mets fell to 6-6 at their spacious new ballpark, where they have 10 triples and seven home runs. They begin a three-game series Friday in Philadelphia, their first matchup this year with the rival Phillies, who won the 2008 World Series.
Renyel Pinto (1-0) worked a scoreless inning for the win.
Lindstrom, a former Mets prospect, walked his first two batters before throwing a called third strike past struggling David Wright. Ryan Church grounded out and Tatis was hit by a pitch, bringing up Santos.
"It wasn't that pretty, really, but I got it done. That's what matters," said Lindstrom, who earned his fifth save and second in two days. "You can't go out there and walk guys and hit guys, but I made a couple of good pitches there at the end."
A dreadful Mets bullpen cost Santana seven potential victories last season -- including five meltdowns that came in the ninth inning. The team thought it solved that problem by signing record-setting closer Francisco Rodriguez and trading for Putz, but that wasn't the case Wednesday.
"I've been in this situation before where I have to come out of the game and hand the ball to the bullpen," Santana said. "Even though I didn't get the win this time, I trust them. I have confidence in them."
Santana, 3-1 with a 1.10 ERA through five outings, has allowed two runs or less in 11 straight starts.
His lone loss in 22 starts since June 28 came when Johnson threw a five-hitter and Florida scored two unearned runs in a 2-1 victory April 12. The two-time Cy Young Award winner had 13 strikeouts in that game.
Cantu hit a solo home run in the first to give Florida a 2-0 lead. He also connected twice and knocked in five runs during a 7-4 win Tuesday night, when Mets reliever Sean Green squandered a seventh-inning lead.
"Starting pitcher gives you what Johan gave us today, makes it hard no matter who's on the mound," Putz said.
- Gonzalez hopes Ramirez (sore right hand) can play Thursday night at Chicago.
- Mets 1B Carlos Delgado (hip) and 2B Luis Castillo (back spasm) sat out again. Manuel hopes both will be ready to play Friday.
- LHP Casey Fossum, designated for assignment Sunday by the Mets, cleared waivers and elected free agency.