Oswalt allowed one hit in eight innings and struck out 10, outpitching Randy Johnson in Houston’s 3-0 victory over the Arizona Diamondbacks.
Ty Wigginton hit a three-run homer off Johnson in the first inning as the Astros averted a three-game sweep and won for the ninth time in 11 games. Arizona, which had won three straight, fell into a first-place tie with the Los Angeles Dodgers in the Nationa League West.
Oswalt, 5-0 in his last seven starts, walked two and matched a season high for strikeouts. He improved to 7-1 in his career against Arizona.
“Roy was just phenomenal,” Houston manager Cecil Cooper said. “Without question, this was his best outing of the year. It probably was the second-best outing I’ve ever seen him throw after the (NLCS) playoff game in 2005.
“You saw two of the best pitchers ever out there. Randy pitched a great game, too. He just made one mistake.”
Oswalt (11-8) said he was off his game more than it appeared.
“I got through it,” he said. “They were hitting it pretty well but I got them to hit it right at someone.”
Oswalt had given up at least five hits in all 23 previous starts this season. But he didn’t think Sunday’s effort was his best of the year.
“I can’t say the best,” he said. “It’s better results than I’ve had in a while.”
Astros slugger Lance Berkman called it Oswalt’s best performance in at least two seasons. But he dispelled the notion that Oswalt was more locked in because he was facing Johnson (10-9).
“I think it was the other way around,” Berkman said. “I think Randy was more focused because he was facing Roy. Randy was pretty dominant and Roy was real dominant.”
Wigginton provided all the support Oswalt needed with his fourth homer in seven games, following a walk to Mark Loretta and a single by Miguel Tejada. Wigginton extended his hitting streak to 14 games and is hitting .510 (26-for-51) since the streak began on Aug. 3.
Oswalt gave up a single to Stephen Drew in the third inning. But Snyder, who had walked and been sacrificed to second, tried to score on the hit to shallow right and was thrown out at the plate by Hunter Pence to end the inning.
Oswalt retired 15 straight batters from there before he was taken out after eight. Jose Valverde finished the two-hitter, allowing only Drew’s single in the ninth before earning his 31st save in 37 chances.



