David Wright made a diving grab to start a rally-killing double play, and the Mets completed a 5-1 homestand to finish 19-9 in May. After taking two of three from Florida, they have won 11 of the past 14 games at their new home, Citi Field.
Bobby Parnell escaped an eighth-inning jam and Francisco Rodriguez struck out three in a hitless ninth for his 14th save in 14 chances.
Missing injured regulars Jose Reyes, Carlos Delgado and Ryan Church, New York got RBI doubles from Omir Santos, Fernando Martinez and Angel Pagan -- who left in the fourth inning with discomfort in his right groin.
Pagan started in center field for All-Star Carlos Beltran, who sat out with a stomach virus.
Maine (5-3) apparently caught the bug, too. Feeling ill, he was lifted after six shutout innings and 82 pitches.
The right-hander improved to 5-1 with a 2.21 ERA in nine career starts against the Marlins. He has a 2-0 mark in three outings this season, allowing two earned runs and six hits over 17 innings.
Maine struck out five and walked two, sending the Mets to their seventh victory in nine games following a four-game slide.
Hanley Ramirez had three hits for Florida, including an RBI single.
Chris Volstad (4-4) allowed three runs and six hits in seven innings. He had won two consecutive starts since a three-game skid.
Three straight Marlins starters have gone at least seven innings for the first time since four in a row did it Sept. 14-18. Florida begins an 11-game homestand Monday night against Milwaukee.
Leading 3-0, the Mets handed the ball to setup man J.J. Putz in the eighth. But he gave up a one-out walk and a single before Emilio Bonifacio's RBI single brought New York manager Jerry Manuel out of the dugout.
He called on Parnell, who allowed a run-scoring single by Ramirez that made it 3-2 and put runners on the corners. But the hard-throwing rookie struck out Jorge Cantu and retired Jeremy Hermida on a long fly to left.
A walk to No. 8 batter Wilson Valdez and a sacrifice bunt by Maine set up Pagan's two-out RBI double in the third.
Pagan pulled up hobbling while pursuing Ramirez's double off the left-center fence in the fourth. He threw the ball back in, then hung his head between his knees as Manuel and trainer Ray Ramirez came out to check on him.
Pagan tried jogging in the outfield, then walked off under his own power. He was replaced in center by Jeremy Reed. The Mets said Pagan is day to day.
Martinez and Santos added RBI doubles in the seventh off Volstad.