DENVER -- The blasts returned to Coors Field long before the fireworks.
Garrett Atkins, who had a career-best five hits, drove in the tying run off Gregg (6-4), who blew his second save in 24 hours. After Hanley Ramirez's error on a potential double-play groundball loaded the bases, Iannetta singled to left through a drawn-in infield.
"When you're in a game like that you never know what's going to happen," Iannetta said. "You know you have a chance no matter what. We just kept battling and kept coming."
The last time a team came back to win from nine down was Aug. 23, 2006, when Cleveland rallied for a 15-13 victory at Kansas City, according to the Elias Sports Bureau.
In the highest-scoring game at Coors Field since the humidor was introduced in 2002, bringing some sanity to mile-high baseball, the Rockies and Marlins combined for 35 runs on 43 hits, 21 of them for extra bases with eight home runs.
"It was a fun game to be hitting," Atkins said. "It wasn't a fun game to be playing defense."
The last time two teams combined for this many runs was May 19, 1999, also at Coors Field, when the Cincinnati Reds roughed up the Rockies 24-12.
Colorado scored in every inning but the eighth, yet trailed until Atkins' tying single in the ninth. Taylor Buchholz (3-2) threw one inning for the win, Colorado's fourth straight.
The Rockies hit a half-dozen homers, two each by Ryan Spilborghs and Matt Holliday, who had his third career grand slam. Atkins and Iannetta also went deep for Colorado, which hadn't had this many long balls in a game since 1999.
"If people came for the fireworks, they got more than the postgame fireworks," Holliday said. "They got their money's worth. Almost 40 runs, 40 hits."
Florida set season highs in runs and hits (22). Cody Ross drove in five runs for the Marlins, who had never blown a lead this big before. Jorge Cantu scored four times and Mike Jacobs went 4-for-4 and reached base all six times up in a losing cause.
Until Gregg blew his second straight save, left-hander Scott Olsen was in line for the win despite allowing nine runs (eight earned) and 11 hits -- including three homers -- in five innings.
The Rockies scored 12 straight runs via the long ball after falling behind 13-4 in the fourth inning.
"That was one of those throwback games from back in the day: the last team to hit," Rockies manager Clint Hurdle said. "This was by far the most fun I've had watching our team swinging the bat in a long time, if not ever. You go up and down the lineup there's a whole host of stars."
Spilborghs, who had a career-best four hits, homered in the fourth. Holliday and Iannetta went deep in the fifth, and Spilborghs and Atkins hit home runs in the sixth, cutting Colorado's deficit to 13-12.
Ross, who cleared the bases with a double in the fourth, drove home two runs with a single off Jason Grilli in the seventh, and pinch-hitter Luis Gonzalez singled home two more runs off Manny Corpas to give Florida a 17-12 lead.
All that did was set the stage for the most dramatic long ball of the night, Holliday's third career grand slam when he took Logan Kensing deep to center field on a full-count breaking pitch that made it 17-16.
"We couldn't get outs," Marlins manager Fredi Gonzalez said. "They couldn't either.
The Marlins roughed up right-hander Greg Reynolds for seven runs on seven hits in just 1 1/3 innings, the shortest of his 11 major league starts.
"We were warned to keep scoring. Don't quit. We were told to keep hitting," Jacobs said. "We slugged. They slugged. When the game was 13-4, I saw the way the game was going. They weren't going to give up."
"This was incredible," Hurdle said. "From an offensive standpoint, they kept coming back into the dugout, grabbing bats and feeling fresh."
- The top four hitters in Colorado's lineup -- Spilborghs, Clint Barmes, Holliday and Atkins -- were a combined 16-for-22 with five home runs and 13 RBI.
- The Rockies placed ailing first baseman Todd Helton (back) on the 15-day DL and recalled power prospect Joe Koshansky from Triple-A Colorado Springs.