Halladay (9-6) allowed six hits and struck out four to snap a personal three-game losing streak. Jose Contreras and David Herndon finished the seven-hitter.
Ross Gload tied a career-high with four RBIs and Shane Victorino homered, helping the Phillies win their fourth straight.
Blue Jays starter Jesse Litsch (0-2) allowed six runs and seven hits in four-plus innings. The right-hander made his second start since having Tommy John surgery last June.