Halladay (16-8) won his sixth straight while allowing eight hits, striking out five and walking three, matching a season high. It was the ninth time this season he hasn't allowed a run and the 25th time in 26 starts he has pitched six or more innings.
The win lets the Phillies (69-52), who have won 13 of 17 games, keep pace at 2 1/2 games behind the Braves in the NL East.
Fan, follow and download: Get the latest from NBCPhiladelphia.com anytime, anywhere. Follow us on Twitter, Facebook and NBC Philadelphia. Sign up for our sports newsletter. And, get breaking news delivered right to your mobile phone -- just text PHIBREAKING to 639710 to sign up. (Message and data rates may apply.)