HOUSTON -- Roy Oswalt spent a little time watching old videos of his pitching and it paid immediate dividends.
He said he felt like his mechanics were a bit off in the last two games and he watched tapes from 2004 and 2005 to pinpoint the problem. After comparing those tapes to his recent outings he realized he had been "kind of rushing."
"I was gone way too early in the last two games," he said. "I slowed down some as far as picking my leg up before I go home. My mechanics felt real good tonight."
Oswalt (4-2) allowed four hits and one run to help the Astros, losers of nine of their last 11 games, rebound after Tuesday's ugly 11-2 loss to the Reds.
"I feel like I need to win every time I go out," he said. "I don't get to go out there but once every five days, so if I can set a tone maybe we can build on that."
The Houston ace didn't allow a hit until Adam Dunn's home run that bounced off the wall in left center field in the fifth to make it 2-1. It was his eighth homer of the season and his third in three games.
"He shut the other team down -- just really didn't even let them in the ballgame," Astros manager Phil Garner said.
Dan Wheeler pitched a perfect ninth for his fourth save in five tries.
Hunter Pence, called up from Triple-A Round Rock on Friday to boost the offense, put Houston ahead 1-0 with a triple that scored Craig Biggio in the first inning. It was his first career RBI.
"That was key, it just gives you a little bit of momentum...to go out there and play with some confidence the rest of the way," Pence said.
The 24-year-old isn't above a rookie error though, as he got picked off with two on and Lance Berkman batting in the eighth.
"He's learning," Garner said. "Got picked off in a situation where he doesn't need to get picked off. Those are the things that young players learn."
Biggio's RBI-single in the sixth pushed Houston's lead to 3-1. He was thrown out trying to stretch the hit to a double.
Oswalt retired the first seven batters before Javier Valentin reached on an error by shortstop Adam Everett. On the play before the error, Everett grabbed the ball backhanded while facing away from the plate, but he couldn't handle Valentin's ball.
Oswalt got the next four batters out before walking Ken Griffey with two outs in the fourth. Alex Gonzalez popped out to Berkman to end the inning.
"He's just amazing," Cincinnati's Scott Hatteberg said of Oswalt. "I really love him as a fan."
Biggio doubled on the first pitch of the game, before scoring on the triple by Pence. Berkman's single scored Pence to make it 2-0.
Carlos Lee made a nifty diving catch on a ball by Hatteberg in the sixth. Lee grabbed the ball while sailing through the air and just before flopping on the ground chest first.
Later in the inning, Luke Scott tried to make one of his own but was just short to give Alex Gonzalez a single.
Reds starter Kyle Lohse (1-2) allowed eight hits and three runs with four strikeouts in six innings for the loss.
"Obviously their game plan was to attack what I've been doing," Lohse said. "It seemed like I was up and all over the place with my fast ball. It seemed like every time I turned around somebody was in scoring position and the way Oswalt was throwing you don't want to do that."
Oswalt's win improves his career record against the Reds to 18-1. ... Biggio had two hits on Wednesday to move past Willie Keeler for 29th on the all-time list with 2,956. ... Josh Hamilton, who was named the National League's rookie of the month on Wednesday, failed to get a hit. ... Lee, who was 0-for-3 on Tuesday, went 3-for-4.