Blum got a pitch to hit against Angel Guzman in the bottom of the ninth and delivered the game-winning hit to lift the Astros to a 2-1 win over the Chicago Cubs.
Guzman replaced Zambrano after he threw dominant eight innings, and Miguel Tejada led off the ninth with a single.
"The sooner [Zambrano] leaves, the better we're going to be," Blum said.
Guzman (2-1) intentionally walked Lance Berkman to load the bases and Blum lined a 1-2 pitch up the middle, bringing home Tejada.
"With Miggy at third, he can run a little bit, so I knew I didn't have to absolutely annihilate a ball to the warning track to score," said Blum, who drove in Houston's other run with a groundout. "He left a ball right out over the [strike] zone and I was able to get on top of it."
Chicago wasted an excellent start by Zambrano, who allowed a run on three hits. He threw 104 pitches.
The Cubs got seven hits and has scored three runs or fewer in seven of their last 11 games.
"When we start hitting consistently, we'll start winning consistently," manager Lou Piniella said. "When you can hold a team on the road to two runs, you've got to feel pretty good about your chances."
Geovany Soto hit a solo homer in the second inning for the Cubs, who dropped to 5-2 at Minute Maid Park this season.
Zambrano, who no-hit the Astros last Sept. 14, breezed through the Houston lineup again on Wednesday.
"I did my job," Zambrano said. "There's nothing else I could do."
The Cubs got five hits through five innings off Rodriguez, but left five men on base.
Rodriguez struck out two Cubs in the sixth, then fanned Zambrano to end the seventh. The 30-year-old left-hander hadn't lasted seven innings since his last win, against Milwaukee on May 20.
Rodriguez lost his previous three starts and a few Astros suggested to pitching coach Dewey Robinson that he was tipping his pitches with subtle movements of his glove. Rodriguez said he saw nothing on videotape to indicate he was doing that, and said the only thing he changed from his last few starts was his location.
"When I make my pitches inside or outside and my breaking ball, you can see a lot of games like that," Rodriguez said. "I used my corners, inside and outside, that was the change."
Pence walked leading off the Houston seventh and went to third on Lee's single. Lee came in with a .347 lifetime average against Zambrano.
Pence scored on Blum's groundout to tie the game.
"I was just fortunate enough to get the bat on a split-finger (fastball) and get it in a position where it wouldn't turn into a double play," Blum said.
Sampson relieved Rodriguez for the eighth. Rodriguez threw 116 pitches, a season high. Sampson gave up two singles, but struck out pinch-hitter Kosuke Fukudome to end the inning.
The Cubs dropped to 25-5 when leading after six innings and 20-8 when they score first this season.
Houston manager Cecil Cooper rearranged his pitching rotation to give RHP Roy Oswalt extra time to recover from minor soreness in his right wrist. RHP Russ Ortiz (3-2) will start Thursday's series finale, replacing LHP Mike Hampton (4-4), who will now pitch Friday in Arizona. Oswalt (2-3) also moves back a day and will pitch against Arizona on Saturday. ... The Astros outrighted the contract of right-handed reliever Geoff Geary to Triple-A Round Rock. Geary has three days to accept the assignment or become a free agent. ... The Cubs activated Miles from the disabled list (shoulder strain) before the game and optioned Jake Fox to Triple-A Iowa.