The Astros lost their sixth straight and have been out-scored by the Diamondbacks over their last two games, 22-4.
Houston reliever Rick White was left to suffer through the sixth, during which he retired only one batter while giving up six runs on seven hits. The loss went to starter Woody Williams (1-7).
Edgar Gonzalez (2-2) got the easy win. He was taken out after five innings, having given up a run on four hits.
Arizona had a 4-2 lead when it went on a tear in the eighth.
Scott Hairston singled in Reynolds with the first run of the inning, a base hit by Tony Clark accounted for two more runs, Eric Byrnes tripled in another two, and a single by Tony Pena delivered the sixth run of the inning.
Reynolds then hit a two-run homer for his fourth hit of the game.
Rosie O'Donnell unveils nearly 50-pound weight loss
Iranian woman stops the execution of son's killer