Dan Uggla drove in four runs with two homers for the Marlins, who went deep four times and beat New York 7-2 Friday night.
Chris Coghlan hit the first home run by a left-handed batter for Florida this season, and Gaby Sanchez also homered. The Marlins totaled more than four runs for the first time in 10 games and scored first for only the second time in the past 14, building a 7-0 lead.
"It's definitely encouraging to put together some good at-bats, put some runs on the board and hit some home runs," Uggla said. "It's a lot more fun than waiting until the sixth or seventh inning to score."
All the homers came off a struggling Oliver Perez, matching his career high. He had given up only one previously this season.
Meanwhile, the Mets' offense continued to misfire. New York managed only four hits and two runs against Anibal Sanchez (2-2), who pitched seven innings and struck out seven.
Even before the game, New York manager Jerry Manuel was threatening to shake up a lineup filled with slumping hitters. David Wright struck out twice and has 20 strikeouts in his past 41 at-bats. Jose Reyes went 0 for 4 to drop to .215. Jeff Francoeur went 0 for 4 and is batting .132 since April 16.
"We're not swinging the bats the way we're capable of," Wright said. "It's one of those stretches. We've got to just fight our way through it. It just takes one or two of those big hits and hope that everybody starts falling in line."
Perez (0-3) might lose his spot in the rotation. He lasted only 3 1/3 innings for the second start in a row, allowed all seven Florida runs and remained winless since Aug. 18.
"He was leaving balls over the plate," Mets catcher Rod Barajas said. "At this level, you've got to be able to locate your pitches. Those guys can hit. They're extremely talented, and if you make mistakes and throw the ball over the heart of the plate, you're going to get hit pretty hard."
Manuel was noncommittal about Perez's status.
"I have to evaluate, obviously, and then sit down with the people involved," he said. "I won't do anything until I talk to the player. We're concerned with the outings we've been getting the last two outings."
As for the lineup, Manuel said any significant changes will likely wait until Sunday because the Mets face a left-hander -- Nate Robertson -- on Saturday night.
The Marlins took the lead in the third, when they bunched four consecutive hits and scored four runs. Gaby Sanchez and Hanley Ramirez singled before Uggla hit a three-run homer. Cody Ross doubled, and with two outs Cameron Maybin singled for his fifth RBI in 115 at-bats this year.
Florida hit three solo homers in a span of four batters in the fourth. Coghlan led off with a homer, his second extra-base hit in 119 at-bats this season. Five pitches later, Gaby Sanchez hit his fourth homer. After Ramirez lined out, Uggla hit his eighth homer of the season to end Perez's night.
"They hit me well," Perez said. "You have up and downs. I don't think I'm the only one in the big leagues who's having trouble."
In the Marlins' dugout, Uggla and his teammates savored their big cushion.
"When it was 7-0, Dan said, `Man, it has been a while since we've run away and it hasn't been a close game,"' Coghlan said. "Those are always a lot more fun to play."
Uggla's 10th career multihomer game came one night after he reluctantly took a breather and was held out of the starting lineup for the first time this season.
"Needless to say, it was a lot more fun tonight playing than watching," he said.
Angel Pagan doubled home two runs in the fifth for the Mets, but they managed only one hit the rest of the way. Burke Badenhop and Brian Sanches pitched an inning apiece to close out the four-hitter.
The Mets, who have the fewest road wins in the majors, fell to 4-10 in away games. They have lost five of six overall.
The up-and-down Marlins have won two games in a row, matching their longest winning streak of the season.
The Marlins struck out 13 times. ... Florida 3B Jorge Cantu, who is 3 for 20 against Perez, was held out of the starting lineup for the first time this season. ... New York had played 10 straight games decided by two runs or less. ... The Mets' loss Thursday was the first resulting from a game-ending wild pitch since Sept. 1, 1981.