The 47-year-old Moyer threw a two-hitter and struck out five to earn his 262nd career victory -- making him the oldest player in MLB history to throw a complete shutout.
The win was the fourth in a row for the Phillies and six of the last seven.
The Phils hit Derek Lowe around for seven runs and 11 hits in his five innings of work. Jayson Werth got the Phillies off to a hot start with a three-run homer to left field in the third inning. Werth went on to have three hits in his four at-bats.
The Phillies did the rest of their scoring in the fifth inning when Raul Ibanez singled to left field to score Placido Polanco and Chase Utley. Wilson Valdez added another single to plate two more runs later in the inning to give the Phillies a 7-0 lead.
Moyer's pitching was outstanding but he was helped out by a great defensive play by centerfielder Shane Victorino. Victorino tracked down an Omar Infante fly ball in the fourth inning with a running catch.
Moyer's last complete game was a 2-0 loss to the Colorado Rockies in 2006.