Cody Ransom and Jayson Werth also each hit two-run blasts for the Phillies, who set a season-high for consecutive wins with their sixth in a row and have also won nine straight at home.
David Herndon (1-2) gave up two runs and coughed up a lead during the sixth inning in relief of starter Cole Hamels but picked up his first major-league win.
Mark Reynolds homered and drove in a pair, while Adam LaRoche and Stephen Drew knocked in a run apiece for the Diamondbacks, who have dropped five in a row.
Jordan Norberto (0-1) took the loss after being charged with two runs and two hits while not recording an out.
Down 4-3, Arizona struck for two in the sixth off Herndon. A double, walk and Howard throwing error on a fielder’s choice loaded the bases with nobody out before a LaRoche sacrifice fly tied the game. Miguel Montero followed with an RBI groundout before a Reynolds groundout ended the threat.
In the home sixth, the Phils responded when Raul Ibanez singled home Shane Victorino before Howard’s two-run blast to left-center made it 7-5.
Danys Baez offered a scoreless top of the seventh. Carlos Ruiz singled, was sacrificed to second then scored on Ransom’s long two-run shot for a four-run difference during the Phils’ turn in the seventh.
Jose Contreras and Ryan Madson locked down the win by holding the D’Backs off the board in the eighth and ninth.
Arizona loaded the bases in the first on a single, walk and hit batter with two outs, and went up 1-0 when Reynolds drew a base on balls.
The Phils broke through in the third. Victorino singled, stole second, but was erased on a fielder’s choice. Placido Polanco, who took first on the grounder, went to third on an Ibanez hit and scored on Howard’s single. Werth walked to load the bases, and after a Greg Dobbs foul out, Ruiz walked to force in Ibanez.
Reynolds tied the game with a leadoff homer in the fourth, but Hamels left the sacks full by fanning Kelly Johnson swinging. Drew’s RBI single put the D’Backs ahead 3-2 in the fifth, but they couldn’t tack on more despite loading the bases again.
In the home half, Howard walked with one down and Werth put the Phils back on top with a homer to dead center.
Philadelphia’s bats have jumped to life during the streak, scoring 36 times in six games…Werth’s fifth-inning blast was his first in 30 games, dating back to June 23 against Cleveland…Phils shortstop Jimmy Rollins did not play due to a bruised left foot suffered on Monday when he fouled a pitch off the foot early in the game…Victorino left the game in the seventh inning with a left oblique strain and will be evaluated on Wednesday…Diamondbacks outfielder Justin Upton left the game in the sixth innings with right hip stiffness…Ibanez went 2-for-4 and scored twice.