NEW YORK -- Lucas Duda popped the ball up in the first inning, then jogged up the first-base line. When the ball dropped behind third baseman Gil Velazquez into short left field, he wound up with only a single.
An inning later, Mets manager Terry Collins pulled Duda from the game.
Even when New York won at home for the first time in nearly a month, the Mets couldn't do it without controversy.
"I know he didn't do it on purpose," Collins said after Friday night's 7-3 win over the Miami Marlins. "But as I told him when he came off the field, we've made a statement here. We're not going to play the game like that, especially right now. Had we won 10 of the last 12 or 15 of the last 20, you can kind of turn your head. But I couldn't turn my head tonight."
Scott Hairston hit a two-run homer and RBI triple, Ike Davis homered and Jonathon Niese reached 12 wins for the first time in his career. Coming off a 16-1 wipeout against Philadelphia, New York had lost nine straight at home since beating Houston on Aug. 26. The Mets won for only the fifth time in their last 30 games at Citi Field.
While loud rap music played in the clubhouse after the game, there was the lingering sour aftertaste of Duda's blunder.
"I hit a ball that I felt I should have hit but I didn't and I was frustrated," he said. "I didn't bust down the line and Terry pulled me out. That's pretty much how it is. I would have done the same thing. ... I didn't hustle, and he took me out."
With three runs in the first and two more in the second, the Mets ended a team-record streak of 16 home games without scoring more than three runs.
"David came through the dugout before the game, giving everybody a high-5 for five, for five runs," Collins said of David Wright. "It worked out."
Fourth-place New York (67-83) would have dropped into the NL East cellar with a loss but instead opened a 1 1/2-game lead over the last-place Marlins (66-55).
"It felt like a playoff game win," Collins said somewhat sarcastically.
It was a messy game to watch. In the first two innings, a team missed a popup and a fly ball, botched a grounder and threw a run-scoring wild pitch.
In a surprise, the guilty club was the Marlins, not the Mets.
"The way we play the first three innings, it was embarrassing," Marlins manager Ozzie Guillen said. "I think if I was pitching in that game, I might fight with somebody."
Former Met Jose Reyes a brutal night at shortstop, blowing a double play on a line drive and making a throwing error on a grounder. Guillen dropped his face into his hand when Reyes caught Davis' fifth-inning line drive, then failed to realize he could have doubled up Daniel Murphy at second base.
"It is embarrassing, yeah," Reyes said. "I need to just stay focused. But it's in the past. We've got another game tomorrow."
Did Reyes lose track out of the outs?
"He lose track of a lot of things today," Guillen said. "He had a bad game. Mentally, he had a bad game. First game we see him do that. That happens. Hopefully that won't happen for the rest of the season. But I don't think he was there much."
Miami's abysmal performance also included a dropped third strike and Justin Ruggiano's failed attempt at a diving catch on Hairston's triple that led to the left fielder leaving with a sprained right shoulder. If not for generous scoring, six of the Mets' runs could have been unearned.
Niese (12-9) allowed three runs and seven hits in 6 1-3 innings as New York won for just the second time in 12 games overall.
"It had been a while, but it's real fun, turn on the music and celebrating with the teammates," Niese said. "The last few games at home have been pretty rough."
Jacob Turner (1-3) gave up six runs -- three earned -- and eight hits in five innings.
Murphy singled with one out in the first and stole second, and Ike Davis' hard two-out grounder went past second baseman Donovan Solano for an RBI single, a play at first ruled an error by official scorer Howie Karpin.
Hairston followed with his career-best 18th home run, a drive into the left-field seats that was the Mets' first extra-base hit in the first three innings at Citi Field since Aug. 22, according to STATS LLC.
"It was a very ugly and very embarrassing game for us. At least for me," Guillen said. "I hope it was an embarrassing game for them, too."
NOTES: A day after the Mets drew a record-low crowd of 20,010 to Citi Field, attendance was 25,446. ... Marlins OF Giancarlo Stanton missed his third straight game because of a strained muscle in his side. Guillen said Stanton also won't play Saturday afternoon. "He's not a Spider-Man to be ready tomorrow," Guillen said.