Cantu homered twice and drove in five runs and the Marlins ended one of the wilder rides in baseball history, beating the New York Mets 7-4 to snap a seven-game losing streak.
The Marlins' skid started immediately after they'd won seven in a row. Florida became the first NL team to win at least seven straight and also lose at least seven straight in April, the Elias Sports Bureau said.
"I thought we were not going to win again until the All-Star break," manager Fredi Gonzalez said. "It felt like that."
Cantu hit a two-run homer in the fourth inning before lining a tiebreaking, three-run drive in the seventh.
"I hope with this win we're going to start rolling again," Cantu said. "We really needed to get out of this thing."
Florida won minus All-Star shortstop Hanley Ramirez, who was hit by a pitch in the right hand the previous night. The Mets were missing first baseman Carlos Delgado and second baseman Luis Castillo, both nursing recent injuries.
Down 4-3 in the seventh, the Marlins rallied against Sean Green (0-1). Alfredo Amezaga drew a leadoff walk, Emilio Bonifacio chopped a one-out single to right and Cameron Maybin's slow groundout scored the tying run.
After a walk to John Baker, Cantu hit his fifth homer into the left-field seats. Cantu produced the seventh multihomer game of his career.
The Marlins scored only 17 runs during their skid, so Cantu's drives were welcome shots.
Mets manager Jerry Manuel, meanwhile, wondered where his team's comeback spirit had gone. Five Florida relievers combined for four shutout innings.
"Three runs shouldn't be something that's insurmountable," Manuel said. "It appears when we get in that position, it's an insurmountable lead. We have to address that.
"I think our anxiety takes over at that time and gets in the way of us performing," he said.
Whipping winds made every popup an adventure in the late innings, and Cantu was charged with an error when he misplayed one. Dozens of hot-dog wrappers danced across the outfield as the night wore on.
The Mets held a pregame tribute to honor Gary Sheffield for hitting his 500th career home run earlier this season, and he quickly made a bid for No. 501.
With two runners on in the first, Sheffield launched a long drive to center -- off the bat, the ball looked as if it had a chance to leave the park. Instead, it wound up short-hopping the wall beyond Maybin's reach near the 408-foot mark for a triple.
Sheffield slid in safely and then shot a glance at the wall, as if to wonder how the ball fell short. Through 11 games at Citi Field, the Mets have not hit a single home run between the power alleys. Overall, they've hit eight triples and only six homers at their new park.
"It's definitely a huge park," Cantu said.
Hernandez left in the sixth with one on, one out and Cantu coming up. Bobby Parnell relieved and after Cantu singled, the Marlins scored when Baker hustled home from second as Jeremy Hermida's hard grounder to third bounced off Wright for an error.
Sheffield's two RBIs gave him 1,637, moving him past Ernie Banks into 26th place on the career list. ... Carlos Beltran extended his hitting streak to 11 games.