Mark Vientos had an RBI single and José Butto pitched six stingy innings to help the fourth-place Mets play spoiler again with their second consecutive win over a postseason contender. New York also beat the Cincinnati Reds at home on Sunday.
"We have to show up every single day and play good baseball no matter who we're playing," McNeil said. "But when you have a team that's competing for a wild-card spot, you want to play well and you want to win those games."
Miami fell a half-game behind the idle Chicago Cubs for the third and final National League wild card. Cincinnati is also a half-game in front of the Marlins after defeating Minnesota on Monday night.
McNeil pulled a slider from closer Tanner Scott (8-5) over the right-field wall for his 10th homer. That snapped a string of seven straight scoreless outings for Scott, who hadn't allowed an earned run in 18 appearances since July 31.
"I was just trying to get on base. Put together a good AB and have the guys behind me do it," McNeil said. "But I was lucky enough to barrel a ball and have it get out."
"It was a really well-pitched game for us and them," Mets manager Buck Showalter said.
Luis Arraez had two hits for Miami and increased his season total to 201. He became the fourth Marlins player to reach 200 in a season.
Butto shut down a Miami lineup that scored 36 runs in a three-game sweep of the major league-leading Atlanta Braves last weekend. The right-hander struck out six and scattered four hits while allowing one run.
Jorge Soler nearly gave the Marlins a 3-1 lead with a two-run homer in the sixth. After he finished his trot around the bases, the umpires huddled and ruled Soler's towering drive down the left-field line sailed foul above the pole. The call stood following a replay review, and Soler ultimately struck out.
"Of course there's frustration," Marlins manager Skip Schumaker said. "When you call it a home run and he trots, yeah, there's definitely frustration. We think there's a home run, but there's nothing you can do. They did a crew chief review and it's kind of out of our hands once that happens. It's part of the game. If they saw it was a foul ball, what can you do when they call that? It's tough."
Butto has allowed four runs and struck out 19 over 17 1/3 innings in three outings since being recalled from the minors Sept. 1.
"When you get here, you have to take care of the opportunities," Butto said. "No matter the situation, whether bullpen or starting, you have to do the job."
Vientos' run-scoring single off Marlins starter Edward Cabrera in the fifth put New York ahead 1-0. Ronny Mauricio had a one-out single and stole second. Omar Narváez walked before Vientos hit a line drive to center that scored Mauricio.
Miami tied it in the bottom half when Jesús Sánchez scored from third on Joey Wendle's double-play grounder. Sánchez drew a leadoff walk and advanced two bases on Garrett Hampson's single.
Cabrera was lifted after 5 1/3 innings. The right-hander gave up one run, four hits and struck out four.
The Mets reinstated INF Luis Guillorme from the injured list and optioned INF Jonathan Araúz to Triple-A Syracuse.
Mets: OF Starling Marte (right groin strain) is with the club in Miami. Marte has appeared in two games since July 16.
Marlins: RHP Sandy Alcantara (right forearm flexor strain) said he felt good after throwing his second bullpen. The reigning NL Cy Young Award winner has been sidelined since Sept. 6.
AP MLB: https://apnews.com/hub/MLB