Mets closer Jason Isringhausen (2-2) came on to protect a 3-2 lead in the ninth but issued a lead-off walk to Logan Morrison and one out later allowed a single to Mike Cameron, sending Morrison to third.
Isringhausen hit John Buck with a pitch to load the bases and pinch-hitter Bryan Petersen followed by sending a routine grounder to Turner.
The Mets second baseman thought about throwing home, then went to first, only to have his throw to first sail over the head of Lucas Duda, allowing the tying and go-ahead runs to score.
The rally made a winner of Scott Cishek (2-1), who hurled two scoreless innings in relief of Brad Hand. The Marlins' starter had yielded two runs on seven hits over five frames.
Omar Infante bashed two solo homers for Florida, which beat the Mets in its final at-bat for a second straight game.
Jose Reyes smacked a bases-empty homer for New York.