Harang pitched a six-hitter for his first complete game of the season, and the Reds sent Houston to its 10th consecutive loss, 4-3. The Astros' skid is one short of the team record.
Harang struck out seven and improved to 6-0 in his last seven starts against the Astros.
"A couple of years ago, I couldn't get a ball by them. They just lit me up," he said. "I don't know if it's a matter of just mixing pitches up better now, or what. You just go out there and try to execute your pitches and good things are going to happen."
Harang (6-2) didn't allow a walk, retired 14 in a row between the second and seventh innings in his ninth career complete game. He threw 105 pitches, 75 for strikes.
"That's what you want to try to do every time, throw strikes," Harang said. "You throw strikes, obviously, good things happen."
Hopper began the season on the disabled list with a bruised heel and returned on April 18. He replaced center fielder Ryan Freel, who's on the 15-day disabled list after sustaining a concussion in a collision with Hopper on Monday.
So far, Hopper is making the most of his opportunity, with six hits in the series from the leadoff spot.
"I've been waiting for a chance all year to get out there and show them what I can do," Hopper said.
"I don't ever remember it being quite this bad," Houston manager Phil Garner said. "This is getting borderline stupid, too. We stung the ball really well and got nothing for it. Guys went to the plate and just didn't get anything."
The Reds scored three runs in the first inning off Wandy Rodriguez (2-5), all after manager Jerry Narron was ejected by plate umpire Bill Welke.
Hopper led off the game with a double to left-center and Narron was thrown out two pitches later for arguing a called strike on Gonzalez.
"I'm sure he felt justified in running me," Narron said, "but I thought it was a little quick."
After Narron stormed off the field, Gonzalez singled to right to score Hopper.
The 28-year-old Hopper is already comfortable in the leadoff spot in the lineup.
"It's pretty easy," he said. "With Gonzalez, Griffey and Dunn hitting behind you, if you get on base, pretty much, you're going to score. That's all I'm trying to do, get on base for those guys."
"This has just been a pretty frustrating time for us," said Astros second baseman Craig Biggio, who committed two errors. "I have seen a few guys struggle in the past, but not as many as we have right now. We're losing games and we just need to get this monkey off our back."
- Hopper doubled twice and went 3-for-4, his second straight three-hit game.
- Lee leads the NL with 46 RBI.
- Biggio's 652nd career double was his 2,974th career hit.
- Indianapolis 500 winner Dario Franchitti threw out the first pitch. He and his wife, actress Ashley Judd, visited Texas on Wednesday to promote the IndyCar race in Dallas on June 9. Franchitti was out of his element as he mingled with players during batting practice. "I really haven't watched much baseball," he said. "I've never played it." Judd put on a glove at one point and caught soft throws from the Reds infielders.