"I really actually thought he would [catch it], especially the way things have been going for me lately with runners in scoring position," said Johnson, who was 0-for-4 in the last two games and had one RBI before Wednesday. "I haven't been taking good at bats and when I do, I would hit them right at somebody. I was thinking when I hit it, if anyone can run it down, he can."
Harden (3-1) allowed his first run with two outs in the fourth before retiring the next 10 batters.
"He did a heck of a job," manager Lou Piniella said. "He maintained his velocity. We thought if we get seven we were going to be pleased."
Harden didn't give up another hit until Bourn singled in the eighth, and Lance Berkman followed with a home run.
The Astros had an emotional day in their return from a rain-soaked road trip filled with delays. Third baseman Aaron Boone visited the team for the first time since open heart surgery before the team learned that hitting coach Sean Berry has what is likely a cancerous tumor on his kidney.
"Definitely a difficult day," manager Cecil Cooper said. "That's pretty tough news today. Kind of a roller coaster day because we get the news on Sean and we see Aaron today. We've gone through four or five days that have been really tough for us, travel days and long days at the ballpark. [But we] cannot make excuses. We still got to go out and play."
Kevin Gregg pitched a perfect ninth for his fifth save.
Hampton hit an RBI single in the fourth that made it 4-1.
Johnson walked to start the sixth, Micah Hoffpauir doubled and Aaron Miles walked to load the bases. Johnson scored on a passed ball by Rodriguez -- his second of the night -- to push Chicago's lead to 5-1.
It was the first time since 2003 that Rodriguez had two passed balls in a game.
"Things happen," Rodriguez said. "It was a bad day for me behind the plate. I feel like I was jumping a little bit behind the plate, trying to reach for the pitch instead of waiting for the pitch and [receiving] it."
Hampton struck out Harden in the sixth before he was replaced by Alberto Arias, who was called up from Triple-A Round Rock earlier in the day. Arias struck out Alfonso Soriano and Ryan Theriot to end the inning.
Hampton allowed seven hits and five runs with four walks in 5 1/3 innings.
Ramirez homered in the seventh inning off Arias.
- Houston RHP Brandon Backe is scheduled to make his third rehab outing on Friday at Double-A Corpus Christi. Backe has been on a the disabled list all season with a strained muscle in his left side.
- Astros closer Jose Valverde, who had fluid drained from his right calf on Friday, began therapy for the injury on Tuesday. He is expected to be out three to five weeks.
- The Cubs selected the contract of right-handed pitcher Chad Fox from Triple-A Iowa and optioned fellow right-hander Jeff Samardzija to Iowa. The 38-year-old Fox had a 1.59 ERA and two saves in 11 appearances for Iowa this season. The nine-year veteran was 0-1 with a 5.40 ERA in three appearances for Chicago last season before a right elbow injury ended his season. He missed all of 2006 and 2007 after elbow surgery in 2005. Samardzija had an 8.10 ERA in five appearances for the Cubs since being recalled April 23.