It was the second straight outstanding outing for Halladay (6-6), who missed 42 games while on the disabled list with a strained lat.
Roy Halladay pitched eight innings and Chase Utley hit a tiebreaking, two-run homer in the eighth to lift the Philadelphia Phillies to a 3-1 victory over the St. Louis Cardinals on Friday night.
It was the second straight outstanding outing for Halladay (6-6), who missed 42 games while on the disabled list with a strained lat. He returned July 17 and struggled in his first three starts back, going 0-1 with a 5.82 ERA. He threw seven innings in a 3-0 victory over Arizona on Saturday.
The right-hander matched a season low by allowing just two hits, while striking out eight and walking none. He didn't allow a hit after Jon Jay's two-out single in the third, retiring 16 of his final 17 batters. The only hitter to reach base was Yadier Molina, who got to first after being hit on the left elbow leading off the fifth.
The Cardinals threatened in the ninth off Jonathan Papelbon, who pitched a scoreless inning for his 25th save in 28 chances. Papelbon gave up a one-out double to Allen Craig and a two-out single to Carlos Beltran to put runners on first and third. But Papelbon got Beltran trying to steal second, throwing ahead of the runner to easily get Beltran after he left first base too early.
Beltran homered for the Cardinals, who have lost three of four.
Jimmy Rollins led off the eighth with a single to left off reliever Barret Browning (0-1), went to second on the left-hander's balk and to third on Juan Pierre's sacrifice bunt before scoring on Utley's towering homer to right-center that gave Philadelphia a 3-1 lead.
The loss ruined another solid effort by Cardinals starter Kyle Lohshe.
The right-hander has been stellar all season and was 6-0 in his last nine starts entering Friday. He had given up two earned runs or less in eight of the nine outings with a 2.52 ERA in those starts.
He continued his mastery of hitters, allowing one run and four hits while setting a season high with seven strikeouts in seven innings. Lohse, who walked two, allowed only three batters to reach second base.
Lohse was pinch hit for with two outs in the eighth, but Halladay struck out Matt Carpenter.
Beltran's leadoff homer to right in the second gave the Cardinals a 1-0 lead.
The Phillies tied the score in the bottom of the inning. Ryan Howard opened it with a double to right and scored on Domonic Brown's single that glanced off the glove of diving second baseman Daniel Descalso and into short right field.