The Reds now have a 2.5-game lead in the National League Central after the Cardinals were no-hit by Johan Santana and defeated by the Mets on Friday.
Mike Leake earned the victory, throwing a season-high 108 pitches in seven innings of work. He walked three batters and struck out seven, also a season-high.
Leake said he didn't have his best fastball and had to go to his backup plan. He wouldn't divulge exactly what that plan was, but it certainly involved using his other pitches more often and not relying on his fastball to get outs.
"It wasn't completely my game, but I was getting out of things," Leake said.
Leake's biggest escape came in the second inning, when he loaded the bases with one out. But he forced Astros catcher Chris Snyder to ground to first baseman Joey Votto, who made a nice play on a spinning ball and threw home for the force out.
"That was a heck of a play," Baker said.
Leake then retired Happ with a strikeout.
After the second inning, Leake gave up just two hits, striking out four and walking just one.
"[Leake] struggled a little bit, but he got out of trouble when he had to," Baker said. "He gave us seven strong innings. He threw the ball well today."
"He was good tonight," Astros third baseman Chris Johnson said. "He mixed it up pretty good and got ahead a lot with his breaking ball tonight. The biggest thing he did was get out of jams."
It was a bounce-back start for Leake, who didn't make it out of the fourth inning in his last start against the Rockies. He picked up his second win of the season on Friday and his second in his last three starts.
"He was just throwing strikes when he needed them," Baker said. "He would get in trouble, then he would slow down a little bit and find his tempo and rhythm, and after that, he'd go back after them again. That was big to get him his second, and hopefully, he can get on a roll."
Leake, who said his last start felt weird because he wasn't walking batters or giving up too many runs, wants to keep building on his recent success.
Logan Ondrusek came out of the bullpen to pitch a scoreless eighth, and Chapman struck out the side to pick up his fourth save. Chapman still hasn't given up an earned run this season in 27 innings and 22 relief appearances.
The Reds didn't produce much offense, but capitalized on opportunities. Votto, back in the lineup after not starting for the first time this season on Wednesday, started the first-inning rally with a two-out single. Brandon Phillips doubled off the left-center field wall and Votto beat the tag from Snyder at the plate.
Jay Bruce brought Phillips home with a single and later added a solo homer in the ninth, his 12th on the season. It was the Reds' first home run on the road trip.
Votto, who is now batting .408 in 125 at-bats at Minute Maid Park, also added an RBI single in the third inning. His average in Minute Maid Park is his highest in any ballpark other than the new Yankee Stadium, in which he's only had 12 at-bats.
Bruce said getting an early lead on Happ was key. After giving up runs in the first and third innings, Happ faced the minimum in the fourth, fifth and sixth innings. He struck out seven and walked two.
"Any time you can score a few quick runs, it's huge, especially against Happ. He's got good stuff," Bruce said.
Bruce also was glad that the Reds were able to start the series with a win. The Reds have won 10 of their last 13 games and have the best record in the Majors since April 19 (25-14).
"That day off was huge, but I think the first game back can be as important, just because sometimes teams come out a little dead legged after those days off, and I think it's good that we didn't," Bruce said.