Mark Reynolds hit a three-run homer for Arizona.
Randy Johnson (6-7) gave up four runs on five hits in six innings and had a two-run double as he picked up the win for Arizona.
Losing pitcher Adam Eaton (3-8) allowed eight runs on seven hits in 3 2/3 innings.
Shane Victorino had two home runs for the Phillies, whose lead over the New York Mets in the NL East shrink to a half-game.
2014: The Year in Music [PHOTOS]