Dan Uggla was a career-best 5-for-5 with three runs, Ross finished with four hits and Miguel Cabrera took over the National League batting lead and drove in three runs for the Marlins, who had a season-high 20 hits and set a franchise record with five home runs.
The Marlins moved within two games of idle San Diego in the NL wild-card race.
Carlos Beltran hit his 40th home run and Cliff Floyd added a two-run drive for the Mets, whose magic number for clinching the NL East title for the first time since 1988 remained at four.
Ross tied Mike Lowell's franchise mark for homers in a game.
Cabrera went 2-for-3 and improved his average to .340 - one point ahead of Pittsburgh's Freddy Sanchez.
Uggla's homer was No. 24 on the season, tying the Yankees' Joe Gordon (1938) for the most by a rookie second baseman.
In other NL games:
* At Atlanta, Derrek Lee homered twice and Jacque Jones hit a three-run shot as the Chicago Cubs beat the Braves, 8-3.
* At St. Louis, Chris Carpenter (14-6) threw a six-hitter and Ronnie Belliard had four RBI, helping the Cardinals blank the Houston Astros, 7-0.
* At Pittsburgh, Zach Duke (9-13) struck out a season-high seven in eight innings and Chris Duffy had a tiebreaking, two-run single, leading the Pirates over the Milwaukee Brewers, 4-3.
* At Phoenix, Jose Vidro's bases-loaded walk broke a tie as the Washington Nationals won, 7-6, despite four homers by the Arizona Diamondbacks.
In American League games:
* At Minneapolis, Michael Cuddyer homered and drove in four runs to lead the Twins, 9-4, over Oakland. Frank Thomas homered for the sixth straight game for the Athletics, two shy of the major league record.
* At Baltimore, Robinson Cano doubled in three runs with a seventh-inning line drive, giving the New York Yankees the lead for good in a 9-6 comeback victory over the Orioles. Derek Jeter went 2-for-5 to extend his career-best hitting streak to 21 games for New York.
* At Anaheim, Jose Contreras (13-7) scattered six hits, allowed a run and struck out eight in eight innings as the Chicago White Sox beat the Angels, 3-2.
* At Seattle, Ted Lilly (13-12) allowed two runs on four hits in seven innings as the Toronto Blue Jays beat the Mariners, 6-2.
* Astros pitcher Andy Pettitte was pushed back a day until tonight to allow his injured left ankle more time to heal.
* Angels reliever Brendan Donnelly dropped his appeal of a four-game suspension for hitting Texas' Freddy Guzman with a pitch and began serving the penalty.
* Cardinals closer Jason Isringhausen, who has not pitched since Wednesday, received a cortisone shot for his ailing hip and won't be used until the weekend.
* Orioles righthander Kris Benson is sidelined with strep throat. *