Ross' third grand slam of the season and fifth of his career came off Blue Jays right-hander Brandon League (1-3).
Florida reliever Dan Meyer (1-0) pitched one inning for his first major league victory as the Marlins won their sixth straight in Toronto. The Marlins are 15-2 against the Blue Jays, including 8-2 in Toronto.
Kiko Calero worked the eighth and Cristhian Martinez allowed a run-scoring grounder in the ninth.
Toronto right-hander Roy Halladay left after three innings because of a sore groin. Halladay, who leads the major leagues with 10 wins and 103 innings, has won seven straight decisions and entered having thrown back-to-back complete games.
Ramirez hit a sacrifice fly off Halladay in the first but Toronto went ahead in the fifth with RBI singles from Joe Inglett and Aaron Hill.
Florida tied it on a two-out, bloop single by Ramirez off League in the seventh, then blew it open in the eighth. Jeremy Hermida doubled, Dan Uggla walked and catcher John Baker was hit by a pitch before Ross homered to center.
Two outs later, Ross Gload doubled and scored on a base hit by Ramirez.
Marlins right-hander Ricky Nolasco allowed two runs and five hits in six innings, his second straight solid start since being recalled from the minor leagues. He walked one and struck out a season-high nine.
Florida's opening day starter, Nolasco was demoted to Triple-A New Orleans on May 23 after going 2-5 with a 9.07 ERA. He returned June 7 and allowed three runs, two earned, over seven innings in a 3-2 loss to San Francisco.