Kelly Johnson added solo shots in the fifth and seventh innings, Chris Snyder also connected in the fourth and Kris Benson threw six-plus strong innings for the Diamondbacks, who won for the second time in three games.
Benson (1-1) allowed the three runs - two earned - on eight hits with five strikeouts. Chad Qualls recorded an out for his third save in five chances.
Shane Victorino was 2 for 5 with a triple and an RBI single for the Phillies.
Reynolds and LaRoche helped the Diamondabcks rally from an early 2-0 deficit.
Justin Upton singled with one out and Reynolds hit his team-best sixth home run a half-dozen rows into the left-field stands off Cole Hamels (2-2) to tie it. LaRoche followed with his first Diamondbacks home run. Snyder had a two-run, two-out shot over the left-field bullpen to make it 5-2.
Kelly Johnson led off the fifth with his fourth home run just over the left-field fence to give Arizona a 6-2 lead.
Hamels allowed six runs on eight hits over six innings with a walk and seven strikeouts.
Brian Schneider singled leading off the seventh against Benson and scored on Placido Polanco's grounder to third off Leo Rosales to cut the Diamondbacks lead to 6-3.
Johnson added his second home run, a lined shot just to the right of the Phillies' bullpen in right field off J.C. Romero, to make it 7-3.
Hamels hit a one-out double and Victorino tripled to the center-field wall to give Philadelphia a 1-0 lead in the third.
The Phillies extended their lead to 2-0 in the fourth on an unusual play.
Jayson Werth hit a towering fly ball to the right-center field corner that Chris Young appeared to catch, only to fumble the ball to the ground as he attempted to pull it out of his glove. Werth, who was between first and second when Young dropped the ball, raced home.