New York won its fourth straight and completed its first home three-game series sweep of the Phillies in a dozen years.
Mike Pelfrey (4-0) worked seven innings to record his second win against Philadelphia this year. He gave up three runs on eight hits.
Francisco Rodriguez worked the ninth to earn his ninth save in as many chances.
Ryan Howard hit a solo homer in the sixth for Philadelphia and Jayson Werth had a two-run shot in the eighth as part of a late-game comeback bid.
Jamie Moyer (3-2) allowed all of New York's runs on seven hits while lasting just 2 1/3 innings.