Oswalt (10-6) matched a season high with 10 strikeouts, showing no ill effects from a strained chest muscle that forced him to miss his last start, and the Houston Astros beat the San Diego Padres 3-1 on Saturday.
"I felt my chest in the bullpen and it didn't feel great, but it didn't feel real painful," Oswalt said. "It started to feel better and better as the game went on and as long as I have good mechanics, it doesn't really bother me."
Carlos Lee homered for the third time in four games as Oswalt beat the Padres for the third straight time and the seventh time in his last eight meetings.
With his 108th career win, Oswalt passed J.R. Richard and moved into fourth place on the franchise win list. He's two wins away from tying Mike Scott for third place.
"I was maybe a little nervous in the first," Oswalt said. "But maybe after I was out there and got a few outs, I got more and more comfortable as the game went on."
Brad Lidge pitched a scoreless ninth to earn his sixth save of the season. Lidge has picked up all six saves in consecutive appearances since July 17. He hasn't allowed a run in 20 of his last 21 appearances.
Maddux (7-8) allowed only two hits after a rocky start, but stretched his winless streak to six starts. The four-time Cy Young winner hasn't won since June 27, in San Francisco.
The 41-year-old Maddux has been around long enough to know how to deal with slumps.
"I never worry about that," he said. "I just try to make sure I'm out there every fifth day and try to be mentally prepared and ready. I just do what I think I can do to have the best chance at success."
Neither ace looked sharp in the first inning.
Brian Giles reached on an error leading off the game, then scored after consecutive one-out singles by Milton Bradley and Adrian Gonzalez. Oswalt struck out Michael Barrett, then plunked Kevin Kouzmanoff on the right wrist to load the bases. Geoff Blum grounded out to end the inning.
The Padres only mustered one hit the rest of the way. They were held to four hits or less for the 14th time this season.
"Here again, our situational hitting was not where it needs to be," said Padres manager Bud Black.
Lee then hammered an 0-1 pitch off the left-field foul pole to make it 3-1. Lee's 23rd homer of the season gave him 86 RBI, giving him the NL lead over Ryan Howard.
"We got to Maddux early and he is one of those pitchers that if you are going to get to him, you need to get to him early," said Houston manager Phil Garner.
Maddux escaped more first-inning trouble when Mike Cameron made a leaping catch against the fence in right center to rob Mike Lamb of an extra-base hit. Jason Lane flew out to the warning track in right to end the inning.
"There were some great plays defensively that kept the game in hand," Maddux said.
The pitching duel took shape after that -- Maddux and Oswalt allowed only one hit apiece over the next four innings. Oswalt struck out Maddux and Cameron in the top of the fifth; Maddux retired the Astros in order in the bottom half of the inning, all on ground outs.
"I just kept throwing, man," Maddux said. "Things aren't going the way you want them to go, all you've got to do is keep playing. I was just trying to do what I thought was right."
Bradley walked leading off the Padres' sixth, snapping a streak of seven in a row retired by Oswalt. The Padres went down in order after that. Luke Scott singled with two outs in the sixth, his third hit of the game off Maddux. Lane flew out to end the inning.
Oswalt started the seventh by striking out Blum and Marcus Giles to match his season high. Scott Hairston pinch-hit for Maddux and popped out. Maddux allowed five hits and two walks without a strikeout in 75 pitches.
- The Astros have won 14 of their last 19 home games.
- Oswalt made his 200th career start.
- Brian Giles has reached base in 23 of 25 games since he came off the disabled list on June 29.
- The Padres have lost 10 of 16 games since the All-Star break.