Even in a smaller role this season, he always is.
"He hasn't played as much as he's used to, but he's as ready as anybody, real professional," Gibson said. "When you put him in situations like that, you just know he's going to come through."
Ojeda got his chance thanks to a hunch by Gibson.
With the game tied 3-all, the Diamondbacks had Ryan Roberts on third with one out after he led off with a double and moved over on Gerardo Parra's groundout. Gibson initially sent Upton out to the on-deck circle to face Wilton Lopez, then pulled back the former All-Star in favor of Ojeda, a career utilityman.
Part of it was that Upton was nursing a sore shoulder, but also because Gibson believed Ojeda could come through.
He was right. Ojeda hit a fly to center off Wilton (5-1) just deep enough to score Roberts from third, giving Arizona its seventh win in eight games.
"It's the hardest thing in baseball when you sit around waiting for your name to be called upon," Ojeda said. "You've got to be ready to pinch hit, pinch bunt, defense, whatever. Whenever you sit on the bench for two to three hours then go into the game, it's real difficult. It looks easy, but it's not."
Adam LaRoche drove in two runs with a double in the first inning and a single in the fifth to reach 89 RBIs, eclipsing Tony Clark's 2005 team record for a first baseman by two.
Houston had been playing well, winning nine of 11, including a three-game sweep that put a dent in St. Louis' playoff chances.
The Astros just couldn't seem to get the break they needed, too many balls hit by the Diamondbacks falling in, too many of theirs falling into Arizona's gloves on great defensive plays.
"The effort was there. It was just the balls were kind of spinning away from them," Houston manager Brad Mills said. "We saw them dive for a ball that went for extra bases. It seemed like it came off everyone's bat. It is going to go to the lines anyway but you couldn't have thrown them out there any better."
Hudson has been sharp since arriving from the White Sox in a July 30 trade, lasting at least seven innings in all six starts for Arizona with 4-1 record and 1.85 ERA.
The rookie right-hander didn't allow a hit against the Astros until Angel Sanchez's leadoff single in the fourth inning, then gave up a run when Hunter Pence followed with another single and Jeff Keppinger made it three straight with a just-through-the-hole RBI hit to left.
The Astros got another run off him in the fifth on Myers' late-swinging double that Parra just missed in right, and a run-scoring single by Sanchez to nearly the same spot.
Hudson was replaced by a pinch hitter in the sixth after allowing two runs on seven hits with six strikeouts.
"I just go out there and try to attack the zone, and they battled through a lot of at-bats and kind of got my pitch count up a little bit," Hudson said.
Myers has lasted at least six innings in all his starts this season, the longest streak in team history and longest in the majors since Arizona's Curt Schilling reached the seventh in 35 straight starts in 2002. He allowed three runs on seven hits in six innings.
Myers' six-or-more streak appeared to be headed to a quick and ugly end against the hot-hitting Diamondbacks. He gave up a single to Stephen Drew in a lengthy opening at-bat, a walk to Chris Young, then a run-scoring double by LaRoche.
After escaping that early shakiness with three weak popouts to end the inning, Myers found trouble again in the fifth, when Young and LaRoche followed Parra's leadoff triple with run-scoring singles that put Arizona up 3-2.
"I couldn't get my curveball over for the most part today," said Myers, who walked three and struck out four. "I had to battle. It is tough when you go out there without any of your best stuff."
Notes: Astros 3B coach Dave Clark turned 48 on Friday, a birthday shared by snowboarder Shaun White and actor Charlie Sheen. ... Upton was out of the starting lineup for the second straight game to give his sore left shoulder another day to heal. He tweaked the shoulder while swinging in the seventh inning against San Diego on Monday.