In the opener, Dan Uggla homered and drove in four runs for Florida. Chris Volstad (3-3) struck out a career-high nine and won for the first time since April 14. The 22-year-old right-hander allowed four runs and five hits in six innings.
"I had all my stuff working," Volstad said. "It was just a matter of getting ahead in the count and finishing it off. I just thought I pitched pretty well."
The Marlins led 3-0 and Volstad retired 11 straight at one point until the fifth inning. Chad Tracy hit an RBI single, and Chris Snyder tied with a two-run homer.
Arizona starter Doug Davis (2-6) struggled with his command and was pulled in the fifth with the bases loaded. Rauch came on in relief and promptly threw a wild pitch allowing Hanley Ramirez to score. Rauch also gave up a three-run homer to Uggla, his fifth of the season, off of the left-field foul pole that made it 7-3.
Dan Meyer relieved Volstad and gave up a solo shot to Tracy and an RBI single to Gerardo Parra as Arizona pulled to 7-6. Kiko Calero, Leo Nunez, and Matt Lindstrom combined to hold off the Diamondbacks in the final 2 2-3 innings. Lindstrom picked up his eighth save after Helms drove in an insurance run in the eighth.
In the second game, which lasted nearly 5 hours, the teams both scored in the 12th: Mark Reynolds hit his second homer of the game for Arizona, and Chris Coghlan tied it with an RBI single.
In the third inning, Upton hit a three-run homer to cut Arizona's deficit to 4-3.
Jeremy Hermida gave the Marlins a 6-4 lead with a two-run homer in the fourth off Bryan Augenstein. Arizona tied it at 7 on Reynolds' two-run homer in the seventh.