SAN DIEGO -- Roy Oswalt is rounding into form.
It was Oswalt's 17th career complete game and second in three outings.
"I feel better than I did at the beginning of the season," Oswalt said. "It seems like I'm throwing the ball better, the balls have a little more carry and hopefully I can carry on the rest of the year."
Ivan Rodriguez homered and Oswalt (4-4) helped himself with two hits at the plate. The right-hander improved to 10-2 with a 2.68 ERA against the Padres in 15 career appearances, including 13 starts. His .833 winning percentage is the highest among active pitchers with at least 10 decisions against San Diego.
"He was dealing," said Rodriguez, Oswalt's batterymate. "He was throwing in and out, breaking balls, sliders in great locations."
Rodriguez hit his seventh home run, a solo shot to center field off starter Josh Geer (1-3) that tied it 1-all in the fifth inning.
"That was a great performance by Roy," Houston manager Cecil Cooper said. "With the exception of the fourth inning he was in total command. Even in the fourth I thought he really pitched well to get out of there with just one and probably should have got out of there with none. He did a great job and was in command all night long."
The Padres pushed across their lone run in the fourth on a bases-loaded wild pitch by Oswalt. David Eckstein was hit by a pitch to start the inning and moved to third on a double by Scott Hairston. Adrian Gonzalez was intentionally walked to load the bases.
Oswalt struck out Headley and Eliezer Alfonzo to get out of the inning, then never allowed another runner.
"For them to come out with just one, it was a lot better than giving up a hit there or two or three runs," Oswalt said. "The guys came back the next inning. And after that I tried to take control and not get behind hitters and not put any guys on base. And I was able to do that."
Oswalt finished with eight strikeouts and two walks. The only hits he gave up were doubles by Hairston and Everth Cabrera.
"He was making the pitches he had to," said Gonzalez, who walked twice but struck out on a 3-2 pitch to end the game. "He made great pitches on my last at-bat. He threw some great fastballs on the outside corner."
Geer allowed three runs and eight hits in seven innings. He struck out two and walked one.
It was the second time this season that the Padres were held to two hits. Seattle's Felix Hernandez also did it on June 16 at Petco Park.
Cooper said his team will go with a six-man rotation until the All-Star break. Left-hander Mike Hampton is scheduled to come off the disabled list Tuesday night and pitch against the Padres. To make room for him on the roster, Houston optioned LHP Wesley Wright to Triple-A Round Rock. ... The Astros also placed right-hander Brandon Backe on waivers. ... Padres ace Jake Peavy will have his right ankle re-examined Tuesday by team doctors. Peavy has a strained tendon and has been on the DL since June 15. ... Gonzalez leads the majors with 63 walks, including 32 in June. Gene Tenace holds the club record for a month with 34 in July 1977. ... Oswalt hit Eckstein with a pitch for the second time this season and the third time in his career, tying for the most times Oswalt has hit a batter.