The Phillies confirmed the feat by Moyer, who accomplished it at 47 years, 170 days old. Phil Niekro was the previous oldest at 46 years, 188 days when he tossed a four-hitter for the New York Yankees against Toronto on Oct. 6, 1986.
Moyer (4-2) struck out five and faced one batter over the minimum to earn his 262nd career victory. The soft-tossing left-hander baffled Atlanta's hitters with an assortment of low-80s fastballs and pinpoint control.
He allowed leadoff singles to Troy Glaus in the second and eighth innings. He recorded his 10th career shutout and 32nd complete game.
Derek Lowe (4-3) allowed seven runs and 11 hits in five innings for the Braves.
Moyer has tossed two other two-hitters in his 23-year career. His first came at Montreal on Aug. 16, 1986, while he was with the Chicago Cubs. He later did it with Seattle against Kansas City on June 2, 2006.
Jayson Werth hit a three-run homer for the two-time defending NL champion Phillies, who have won four in a row and six of seven. Lowe was 6-1 against the Phillies before this season, but is 0-2 with a 9.90 ERA against them in his last two starts.
Moyer pitched six innings in each of his first five starts and has been inconsistent since last year. He lost his job in the starting rotation when the Phillies signed Pedro Martinez last July. Moyer beat out Kyle Kendrick in spring training for the No. 5 spot.
A sellout crowd gave him a standing ovation when he stepped into the batter's box in the eighth. They roared when he fouled off several pitches, and gave him another loud ovation after he completed the 11-pitch at-bat with a foul out to left field.
The last-place Braves were missing three of their best hitters. Right fielder Jason Heyward (groin), catcher Brian McCann (eye) and shortstop Yunel Escobar (adductor) weren't in the lineup.
Moyer got some defensive help in the fourth when center fielder Shane Victorino made an outstanding running catch on Omar Infante's drive leading off the inning.
Chase Utley got the Phillies started with a two-out single in the third. After Ryan Howard singled, Werth launched his second three-run shot in two games to give the Phillies a 3-0 lead. Singles by Placido Polanco, Utley and Howard loaded the bases in the fifth. Raul Ibanez followed with a two-run single. After an intentional walk to Carlos Ruiz, Wilson Valdez drove in two more runs with a single for a 7-0 lead.
NOTES: Heyward is day to day with a strained groin. McCann could play Saturday if his new glasses arrive. ... Phillies SS Juan Castro had an MRI on his injured hamstring. ... A crowd of 45,349 was the 56th straight sellout at Citizens Bank Park. ... Moyer's last nine-inning complete game was a 2-0 loss to Colorado on June 30, 2006.