The former AL Cy Young winner struck out eight in his first NL complete game, and the Phillies completed a sweep of the winless Houston Astros with a 2-1 victory Sunday.
Halladay (2-0) scattered seven hits and retired the last nine Astros in order. Acquired from Toronto in an offseason trade, Halladay pitched his 50th career complete game and outdueled Roy Oswalt (0-2).
"I don't think about it," Halladay said after throwing 111 pitches. "You just go until they tell you you're done. Obviously, if you go out for the ninth, you know you've got a chance to finish it. You just keep running out there until they don't let you anymore."
Jimmy Rollins led off the game with a home run and the two-time NL champions improved to 5-1. The Astros are 0-6, their worst start since the 1983 squad lost its first nine games. Houston manager Brad Mills tried to encourage his players afterward.
"I went up to every guy and told him to keep battling," Mills said. "I'm very surprised we are 0-6. We have a good ballclub. We are going to keep battling. We have been in every game, but we have also played good ballclubs."
Halladay earned his 150th career victory. He has 137 wins since 2001, tying Oswalt and the Yankees' CC Sabathia for the most in the majors. He only faced trouble in the sixth and seventh innings against the Astros, who've scored a total of 13 runs this season.
"It's a tough play for a third baseman, because he's trying to read the speed of the bunt," Halladay said. "I didn't make a good throw to him. I think that's just kind of learning each other. I feel like that's a play we need to make later on."
Johnson scored when Cory Sullivan rolled into a double play, cutting the Phillies' lead to 2-1.
Halladay threw 92 pitches in the first seven innings, and Phillies manager Charlie Manuel never asked his ace if he was ready to come out. Halladay said he would've let Manuel know if he was getting tired.
"At that point, I still felt strong," Halladay said. "The pitch count wasn't too out of control."
Halladay breezed through the eighth inning on only 10 pitches, striking out Bourn and Keppinger and retiring Sullivan on a groundout.
Carlos Lee just missed hitting a tying homer in the ninth, hammering Halladay's first pitch into the left-field seats -- a few feet outside the foul pole. He flied out to center on the next pitch.
"We had a good fight," Bourn said. "We had our ace against their ace. They got a couple runs, but we had a couple opportunities to break it open, and we couldn't."
Oswalt also struck out eight and allowed five hits in six innings, but lost for the first time in his last seven decisions against Philadelphia. He left the clubhouse without speaking to the media.
Philadelphia mustered only six hits, its first game under 10 hits this season.
Rollins led off the game with a homer, driving Oswalt's second pitch into the right-field seats. It was his 34th career leadoff homer and first of the season.
Oswalt shut down the Phillies after that, allowing only three runners and striking out five over the next four innings. The Phillies came in leading the majors in runs (41), hits (63), extra-base hits (24) and batting average (.337).
The Phillies earned their first sweep at Minute Maid Park since September 2006. ... Astros All-Star first baseman Lance Berkman is concerned that his left knee is taking longer to heal than the two to four weeks initially expected. Berkman will stay in Houston to continue physical therapy while the team visits St. Louis and Chicago. "I just need to concentrate on trying to get better as quickly as I can," he said. "Time is a great healer. I can't do anything about it until it's ready." ... The Phillies said RHP Brad Lidge (elbow surgery) will make his second rehab appearance for Single-A Clearwater on Monday. Lidge allowed four runs on three hits and retired only two batters in his first rehab appearance on Saturday.