Brian Moehler, Wesley Wright, Doug Brocail and Jose Valverde overcame the high-powered Texas lineup, as the Astros took a 4-3 victory before a crowd of 40,052 at Minute Maid Park. The win evened the Lone Star Series at two games apiece.
Moehler (4-3) went 6 1/3 innings, allowing a run on five hits and two walks.
"Any time you can hold those guys to three or less, you've done a pretty good job," Astros manager Cecil Cooper said. "I thought Moehler was just outstanding to hold them to one run. He just kind of shut them down after that [first inning]. He was in command."
Moehler hadn't beaten the Rangers in eight years. He was 0-2 in four starts since defeating them on May 30, 2000.
"The game plan was to not let [Josh] Hamilton beat us and keep [Ian] Kinsler off the bases," Moehler said. "I know these guys are a good hitting team, I didn't want to get behind them."
Moehler fell behind in the count in the first, and Kinsler made him pay with a leadoff double. He later came around on a single by Michael Young. Hamilton went 0-for-2 against Moehler before leaving the game in the fifth with right knee inflammation.
Moehler's control improved as the game continued, falling behind just three batters during his final five innings of work.
"He was locating," Rangers outfielder Marlon Byrd said. "He was hitting his spots. It was one of those days. He was on and we were off."
The only other scoring threat against Moehler came in the sixth, when he got Brandon Boggs to fly to deep center with the bases loaded and two outs.
"I thought Boggs hit the ball more in the gap than he did," Moehler said. "In this ballpark, as deep as it is, there's a little more room to play with. I actually got away with a pitch that was up."
The Astros came up with a pair of insurance runs in the eighth on a two-run homer by Lance Berkman, his 21st of the season. Those runs were needed when the Rangers came up with two in the ninth on a two-run shot by Ramon Vazquez off Valverde.
Valverde fanned Kinsler to nail down his 19th save and Houston's third win in its last four games.
"I think all the credit needs to go to Moehler, and then Wesley came in and did his job, Brocail does what he's been doing all year and Valverde with the big save," said Astros third baseman Ty Wigginton. "Everybody knows pitching wins, and when you get a good performance like that, you can't waste it as an offense."
"He's the big reason why we won tonight," Berkman said of Moehler. "[He] just kept a really potent offense in check and did a masterful job."
The Astros took the lead with a pair of runs in the second.
Berkman snapped an 0-for-9 streak with a double to lead off the inning. Two outs later, he scored on a base hit to right by Wigginton. Wigginton came home on Humberto Quintero's double to left, as the Astros went ahead, 2-1.
Given the lead, Moehler and the Astros made it stand.
"He has been really, really good for us," Cooper said. "We knew he was going to be able to throw strikes. He's just been real effective."
Jim Molony is a reporter for MLB.com. This story was not subject to the approval of Major League Baseball or its clubs.