Moyer (11-8) allowed three runs and seven hits in 6 1/3 innings to win his fourth straight decision. Antonio Alfonseca pitched out of trouble in the seventh and Brett Myers worked a perfect ninth for his eighth save in nine chances.
The Phillies remained three games behind the NL East-leading New York Mets, while Atlanta fell 3 1/2 back.
Right fielder Jeff Francoeur threw out two runners at the plate for the Braves, who went 3-3 during a six-game road trip against the Mets and Phillies.
Helped by Francoeur's assists, starter Buddy Carlyle limited Philadelphia to one run over the first four innings. But Carlyle (7-4) didn't get through the fifth.
Jimmy Rollins started with a walk and Tadahito Iguchi followed with a grounder to second baseman Martin Prado. Rollins was safe at second because shortstop Yunel Escobar missed the bag on an attempted double play and Iguchi beat the throw to first. Braves manager Bobby Cox came out and argued briefly, but didn't get his record-breaking ejection.
Cox has been kicked out of 131 games, tied with John McGraw for first on the career list. He holds the record for most ejections by a manager because McGraw earned 14 as a player.
After Pat Burrell popped out, Howard drove his 33rd homer into the left-center seats to give the Phillies a 4-2 lead. The reigning NL MVP leads the league with 97 RBIs, even though he was on the disabled list earlier in the season.
Prado's RBI double in the seventh got the Braves to 4-2. Prado advanced to third on pinch-hitter Chris Woodward's fly out, but Alfonseca entered and struck out Escobar and Matt Diaz to end the inning. An enthusiastic Alfonseca celebrated with an odd-looking, windup fist-pump and leg kick.
The more low-key Moyer relied on his typical assortment of slow stuff to keep Atlanta's potent lineup off-balance after a rough first inning. The 44-year-old left-hander struck out Mark Teixeira swinging at an 80 mph fastball in the sixth and froze Andruw Jones with a changeup to strand two runners that inning.
Rollins used his speed to get the Phillies an insurance run in the seventh. He legged out a triple leading off and scored on Burrell's sacrifice fly to right. Francoeur's throw was strong, but sailed over everything and hit Atlanta's dugout as Rollins crossed the plate to make it 5-3.
The Braves went ahead 2-0 just three batters into the game. Escobar singled and Diaz doubled. Chipper Jones followed with a two-run single.
Jayson Werth's two-out single inthe first cut it to 2-1. On the hit, Francoeur easily threw out Burrell trying to score from second base.
Francoeur nailed Werth at the plate on Abraham Nunez's single to right in the fourth for his major league-leading 17th assist.
Carlyle gave up four runs -- three earned -- and six hits in 4 1/3 innings.
CF Aaron Rowand robbed Escobar of extra bases with a running catch on a drive to left-center leading off the third. ... The Braves are 4-2 at Philadelphia this season, including a season-opening, three-game sweep. ... A crowd of 45,053 was the 20th sellout at Citizens Bank Park this season. ... Since moving to their new stadium in 2004, the Phillies are 39-11 at home on Sundays. ... Rollins has scored 100 runs for the fourth straight season.