Chase Utley hit a two-run shot for the Phillies and Shane Victorino put on a dazzling defensive show in center field, chasing down one long drive after another to keep the Braves from extending their winning streak to a season-best six games.
Howard won it with his 28th homer of the season, driving a 2-1 pitch off struggling Rafael Soriano (1-4) into the center-field seats to break a 2-all tie. Philadelphia extended its lead over Atlanta in the NL East to six games.
Joe Blanton surrendered only one earned run in seven innings, Ryan Madson (4-4) won it with a scoreless eighth and Brad Lidge escaped trouble in the ninth for his 22nd save in 29 chances.
After struggling in his two previous starts, Braves starter Jair Jurrjens allowed just two runs on five hits in seven innings. But Soriano, pitching for the first time in nearly a week, couldn't get past Howard. The Atlanta closer has given up five runs in his past four appearances, getting through only one of them unscathed.