Miguel Tejada began the four-run rally with a single to center. Lance Berkman grounded to third, but both runners were safe when second baseman Orlando Hudson was late getting to second to complete the forceout. Carlos Lee walked, setting the stage for Blum, who was hitless in his nine previous at-bats.
"It's always nice to contribute," Blum said. "I know it's been few and far between when I've had the opportunities, but especially with the bases loaded against a team like that, it's nice to jump out to a relatively early lead."
J.R. Towles contributed that inning as well, but replays showed he could have been credited with a home run instead of the RBI double that scored Blum. The ball appeared to hit the yellow line on the fence in left-center, but a closer look suggested it actually hit beyond the fence before bouncing back on the field.
Cooper jogged onto the field to discuss the location of the ball with second-base umpire Mike Winters and then with third-base umpire Paul Schneider, but the call stood.
"I thought it was a home run," Cooper said. "I thought it hit a fan and came back. [Schneider] said no. He said he didn't have it that way. That's the way it goes. I'm not arguing about those anymore."
The Astros, as it turned out, were lucky to have scored as many early runs as they did, because once Gonzalez exited the game, the offense fell silent. D-backs manager Bob Melvin lifted Gonzalez after Towles' double and inserted right-hander Max Scherzer, the club's No. 1 Draft pick from 2006, and he was practically unhittable.
In his big league debut, Scherzer tossed 4 1/3 perfect innings and set a club rookie record for the most strikeouts in a debut with seven.
"That's pretty impressive stuff right there," Cooper said. "I think he hit 98 [mph] one time and [has] a nice looking slider. I'd like to have him in my 'pen. He's a pretty good looking pitcher."
The Astros opened the game with two runs in the first off Gonzalez on a double by Tejada and an RBI single by Lee, but Astros starter Jack Cassel surrendered the lead immediately when he yielded a two-run home run to Conor Jackson in the bottom of the inning.
With two outs and a runner on first in the fifth frame, Cassel walked Chris Young, ultimately ending the right-hander's night. Cooper called for lefty Tim Byrdak to face left-handed-hitting Stephen Drew, who flied out to center. Because Cassel recorded only 4 2/3 innings, he was not eligible for the win.
"He had a chance to get a win right there," Cooper said. "You can't walk guys right there. That brings the tying run to the plate, and you can't do that. That's why we decided to do that."
Cassel kept his comments brief, but it was obvious he didn't agree with Cooper's decision.
"All I'll say is I was confident I could get the last out," Cassel said. "That's all I can say about that. It's skipper's decision, and we won the game and it proved to be the right one. But I was confident that I could have gotten that out."
The Diamondbacks never caught up with the Astros, but they threatened the entire night. The drama lasted well into the ninth, when closer Jose Valverde came in to record the final three outs against his former team.
Valverde struck out Justin Upton before he yielded a double to Jeff Salazar. Valverde capped the night with strikeouts of former Astros player Chris Burke and pinch-hitter Eric Byrnes.
Valverde admitted he was "a little bit" anxious to face his former club.
"This is my old team," he said. "I was excited, striking out these guys and doing it for the Houston Astros. In the bullpen they told me, 'You have to focus on these guys and strike out everybody.' I was just doing my job."