"It's fun to watch these guys play late in the game," Happ said. "That's the way baseball is sometimes. Guys see you are battling and the second, third, and fourth time through they stuck with it and got on the board today."
Happ (3-1) allowed two runs and three hits to improve to 2-1 in four starts since he was acquired from Philadelphia in the Roy Oswalt trade.
"When your pitchers go out and battle like that it gives you a chance to win," Pence said. "All up and down the lineup, everyone hit and we made some amazing plays."
Pittsburgh has lost 10 consecutive road games and seven in a row overall. The Pirates dropped all nine of their games at Minute Maid Park this season.
"When you get three hits in a game, you're not doing well," manager John Russell said. "We have to swing the bats well. We are showing signs that we can. We are swinging them a little better, but when you are only getting two, three, four, five runs a game, it's tough to win."
Karstens was charged with five runs and seven hits in 5 2/3 innings. He has dropped his last seven decisions.
Plate umpire Alan Porter had to leave in the sixth inning after he was struck on the head on Lee's swing. Porter walked off the field and required five stitches to close a laceration.
Second base umpire Hunter Wendelstedt moved behind the plate to finish the game.
The delay for Porter's injury had an effect on Karstens.
"Once that happened, I slowed down," Karstens said. "I threw a pitch and one fly ball, then another fly ball. The other guys had singles. Things kind of tumbled, and they had to pull me out of the game."
Pittsburgh pushed across two runs in the fourth to take a 2-1 lead. Neil Walker's sacrifice put runners on second and third for Lastings Milledge, who singled to center for the Pirates' first run. Chris Snyder followed with a sacrifice fly.
Happ's wildness almost cost him in the sixth. He walked Pedro Alvarez and Walker with one out. Milledge then hit a roller to second baseman Keppinger, forcing Walker at second.
Shortstop Angel Sanchez's throw to first was high and Milledge was safe, but first baseman Wallace cut down Alvarez trying to score, ending the inning.
The Astros are 34-31 since their 17-34 start.