Garland (4-2) allowed two runs—one earned—and seven hits. He walked one and struck out three during his fifth quality start in eight outings. Chad Qualls pitched the ninth to earn his ninth save in 10 opportunities.
Garland had been slated to start Sunday at Atlanta, but a rainout pushed him back to Tuesday.
Then on Monday night, teammate Dan Haren pitched three innings before the scheduled series opener at Florida was postponed. Tuesday’s forecast was for even worse weather.
“I wasn’t worried about wasting a start (like Haren). If that’s your mind-set going in, you’re not going to have your best stuff,” Garland said.
It was Arizona’s second straight win after dropping seven of eight.
Hanley Ramirez homered for Florida, which has lost seven of eight and 13 of 17. The announced attendance was 10,131, though only about one-third of that was present.
Marlins starter Josh Johnson (3-1) had retired 11 in a row when he began the seventh. Reynolds then hit the third pitch to left-center for his ninth homer to pull Arizona to 2-1.
“Johnson was rolling out there, he was covering us up pretty good,” Reynolds said. “Then I hit the homer and it kind of got guys in a good mood and got the pressure off.”
Arizona scored four more runs with the help of two Marlins errors and a hit batter.
Eric Byrnes reached on third baseman Emilio Bonifacio’s throwing error, and Chris Snyder singled. Both moved up on Augie Ojeda’s sacrifice.
“I just didn’t finish. I made some bad pitches in the last inning. I can’t take them back now,” Johnson said.
Renyel Pinto relieved Johnson and hit pinch-hitter Miguel Montero with the first pitch. Felipe Lopez and Gerardo Parra each followed with RBI singles. Montero scored when Parra’s hit got past left fielder Chris Coghlan for an error.
Justin Upton’s sacrifice fly scored Lopez to give Arizona a 5-2 lead.
“The way J.J. was pitching, you hate for them to put up a big number,” Marlins manager Fredi Gonzalez said.
Ramirez hit his seventh homer, with one out in the sixth. Florida added an unearned run later in the inning with the help of two errors by Byrnes in left field.
Jorge Cantu lined a single to left and went to second when the ball got by Byrnes. After John Baker struck out, Dan Uggla lined a single to left to score Cantu. Uggla went to second when the ball went through Byrnes’ legs.
The Marlins pulled to 5-3 on pinch hitter Ross Gload’s run-scoring single in the seventh.
The game started 20 minutes late as thunderstorms remained in the area.
“We played a dry game. Who would have predicted that before the game?” Diamondbacks manager A.J. Hinch said.