Jose Reyes and John Buck each chipped in with four hits. Reyes had three doubles, while Buck had three singles and a home run.
Justin Ruggiano added a home run, and Miami collected a season-best 20 hits. It was the most hits the club has had since posting 22 on July 4, 2008, at Colorado.
"Finally, we see some guys having fun in the dugout," manager Ozzie Guillen said. "Have a little smile, and enjoy the game. We've been so devastated all year long, losing games. It's nice to see guys come out of the gate, having good at-bats."
The Marlins matched a club record with 10 hits in a nine-run fourth inning. And their nine runs in the inning were one shy of the team mark, set on July 9, 2009, in the eighth inning, also here.
"Stanton has been very hot, he's been hitting the ball out of the ballpark," D-backs manager Kirk Gibson said. "He did what he does. We made poor pitches to him and he hammered them. They had 20 hits, give them some credit. We didn't pitch very well all around."
Miami did a little bit of everything in the fourth inning off Joe Saunders, who was knocked out after 3 2/3. Stanton blasted a three-run homer, and Ruggiano followed with a shot of his own. Both drives were estimated at 442 feet, according to ESPN home run tracking.
"We haven't done that all year," Stanton said. "But that's the ideal situation of hitting with runners in scoring position, playing with the gaps and having good at-bats all around."
Donovan Solano, Reyes and Carlos Lee each had two hits in the fourth, marking the first time in club history three Marlins had done that in the same inning.
"Feed off each other," Stanton said. "One of us could have hit into a double play or something and killed the mood or the momentum. We kept it rolling."
Only once before had the Marlins enjoyed a 10-hit inning, in the third at Pittsburgh on Sept. 9, 2011.
The outcome was vastly different from when Saunders threw a three-hit shutout against Miami on April 27 at Marlins Park.
"The last time we actually faced him, we kind of had him on the ropes, and he got out of it all the time," said Buck, who enjoyed his fourth-career four-hit game and first since Aug. 20, 2010. "It was good to get some runs across the plate, and big hits. Once that happened, we got that monkey off our backs, and continue to hit."
Miami blasted four home runs, with Buck providing the last one.
With plenty of run support, Mark Buehrle (11-11) was able to cruise through seven innings, giving up two runs on six hits.
"These guys did all the work today," Buehrle said. "When you get a lead like that, you obviously don't want to just go out there and just pump heaters. You still have got to get guys out. Any time you get a lead like that, you can make a mistake, give up a home run, and you're like, 'Well, we still have got the lead.' "
The Marlins trailed by a run entering the fourth. But they opened with six straight hits, including the back-to-back homers.
Lee drove in a run with a single, giving him 29 RBIs in 42 games since he was acquired by the Marlins from the Astros on July 4. In 66 games with Houston, Lee also had 29 RBIs.
During the long inning, Buehrle found ways to stay loose. He went into the clubhouse, where he was razzed by fellow starters Josh Johnson and Ricky Nolasco, who kidded him about all the run support.
"You just move around," the veteran left-hander said. "You can't just sit there on the bench."
Each team collected an extra-base hit in the first inning, but the D-backs were able to parlay theirs into a run.
With two outs, Jason Kubel blasted Buehrle's full-count offering for a home run to right field. In his first 14 at-bats this season against the Marlins, he had eight hits and four RBIs.
Buehrle was able to hold the D-backs down, and the offense did the rest, particularly in their nine-run fourth.
"It happened in a hurry," Buehrle said. "A bunch of hits on first pitches. When that happens, you come up here and try to stay loose. In a long inning like that, you can stiffen up and it gets a lot harder to stay loose. You do whatever you can to stay loose."