Lucas Duda put the Mets in front with a three- run homer in the sixth inning, and New York held on for a 4-3 victory over the Miami Marlins at Citi Field.
Andrew Brown added a solo shot and Jonathan Niese (7-7) worked 6 1/3 innings to pick up the win. He was charged with three runs on six hits while striking out seven.
"When he uses his curveball, he's got as complete of stuff as any body in this league," Mets manager Terry Collins said of Niese. "When he uses it effectively, he gets outs."
LaTroy Hawkins closed the door in the ninth, pitching a 1-2-3 inning to secure his ninth save and only New York's sixth win against the Marlins in 16 meetings this season.
Giancarlo Stanton stroked a pair of solo home runs and Donovan Solano had an RBI double in the setback, Miami's sixth in seven games.
Brad Hand (0-1), making his first start of the season for Miami, served up both Mets homers and allowed five hits and two walks over 5 2/3 frames.
Back-to-back doubles by Ed Lucas and Solano gave the Marlins a 2-1 edge in the fifth, but the Mets retaliated an inning later to jump in front.
Eric Young doubled to start the bottom of the sixth and Brown worked a two-out walk to bring up Duda, who demolished a 2-2 offering from Hand into the netting past the right-field wall for a three-run homer and a 4-2 Mets' advantage.
"I was trying to go curveball away, down and away from him," Hand said of his approach against Duda. "I just left it up a little bit and it got in toward his hands."
Niese gave a run back in the seventh when Stanton launched his second leadoff homer of the game, and the lefty's outing came to a close after Lucas reached him for a one-out single. Scott Atchison kept Niese in line for the win, though, retiring Solano and Koyie Hill.
Chris Coghlan singled to start the top of the eighth but the Marlins never got another hit, with their last six batters set down in a row.
Stanton and Brown exchanged leadoff homers in the second for their respective teams to make it a 1-1 game after two innings.
New York had just five hits ... The Mets will seal their fifth straight losing season with their next loss.