Vazquez (9-11) gave up only one run on six hits to win his second start in a row. He also didn't walk a batter and struck out seven, pushing his career total to 2,507 and passing Hall of Famer Christy Mathewson (2,502) for 29th place all-time.
"Even though we're out of it, as a professional as an athlete, you want to be good every time out," Vazquez said. "It's important for everyone to try and finish as strong as we can."
They were coming off Sunday's 14-inning, 5-4 victory against the Phillies.
Chris Capuano (10-12) allowed six runs in four innings to take the loss for the Mets, who had won eight of 10 entering this three-game series.
"He's pitched so well all year long," Mets manager Terry Collins said of Capuano. "It's the first time he hasn't given us five or six innings all year. Every mistake he made was belt high in the middle of the plate and they hammered him."
Bonifacio's leadoff double started a first-inning rally for the Marlins. He moved to third on a bunt and scored on a wild pitch, racing across the plate between a scrambling Josh Thole and Capuano.
Two batters later, Sanchez ripped a double deep to left field. The ball smacked the top of the tall wall, bouncing back onto the field for a hit ruled a double.
Morrison then grounded a ball back up the middle to make it a 2-0 game.
Lopez crushed a homer down the left field line in the bottom of the third, and after David Wright tripled and scored on a groundout in the fourth, the Marlins took control.
Mike Cameron reached on a one-out double in the home half of the fourth, then scored on Bryan Petersen's liner that just eluded Capuano's glove.
A Petersen steal, John Buck walk and Vazquez bunt put runners in scoring position with two away for Bonifacio, who delivered another key hit. He lined a single to right to plate both runners and make it a 6-1 contest.
The Marlins continued to add runs against the Mets' bullpen. D.J. Carrasco relieved Capuano in the fifth and allowed an RBI double to Cameron, and had an error keep him on the mound in the sixth.
Ruben Tejada's miscue allowed Omar Infante to reach with two away, opening the door for Florida to increase its lead again. Lopez's double set up Sanchez's two-run single that made it a 9-1 contest.
After yielding the run in the fourth inning, Vazquez didn't allow a runner to reach second base. Jason Bay hit a two-run homer off Chris Hatcher deep to left field in the ninth inning.
The series is the Mets' final at Sun Life Stadium. They are 72-72 at the venue, which will be replaced by Florida's new ballpark next season...The Marlins reinstated catcher John Baker (Tommy John surgery), infielder Donnie Murphy (wrist inflammation) and right-handed reliever Brian Sanches (strained elbow) from the disabled list Monday. They also moved lefty Randy Choate (elbow inflammation) to the 60-day DL.