HOUSTON -- Jeff Karstens' left knee bothered him throughout the game, and it didn't matter one bit. He was just that good.
|More on Pirates at Astros|
"I've just been attacking the zone, throwing lots of strikes, not trying to walk guys, make guys earn their way on and I've just kind of benefited from that," Karstens said.
Garrett Jones drove in the game's only run with a single to right field in the second inning.
Karstens (4-4) struck out three and walked none in 6 2/3 innings. The right-hander is 1-0 with a sparkling 0.44 ERA in three starts in June and is working on a scoreless streak of 14 2-3 innings.
"I just kind of felt it in the fourth, then felt a little more in the sixth and then couldn't really finish, I guess," he said of his knee. "[Manager] Clint [Hurdle] said I looked a little different. But it was one of those things where maybe I was trying to baby it and not push off so much. But I don't think it's anything serious."
Joel Hanrahan pitched a perfect ninth for his 18th save.
Bud Norris (4-5) kept Houston in the game with another sharp outing in his first start since taking a no-hitter into the seventh inning last week against the Cardinals. He struck out nine in seven innings, yielding one run and six hits.
Houston's Hunter Pence went 0 for 4 to snap his career-best 23-game hitting streak, which was the longest current streak in the majors and the second-longest overall this season.
"The loss is pretty painful," he said. "We have to find way to win series, and tonight I was not able to contribute. I feel like I had good at-bats, they pitched well and ultimately, it is about wins and losses and the streak was fun. It was a great experience, and I hope some of the fans got to enjoy it a little bit."
Chris Resop and Tony Watson each recorded an out for Pittsburgh before Tim Wood got into trouble in the eighth. Chris Johnson hit a one-out single and pinch-hitter Matt Downs walked before Jose Veras retired Jason Michaels and Michael Bourn to end the inning.
"Our pitching has been outstanding," Hurdle said. "Jeff was very, very effective again tonight. Talk about stepping on and off the gas, using his fastball in spots, mixing in his breaking ball, slider, changeup -- all his pitches."
Jeff Keppinger singled with one out in the second for Houston's first hit, but the Pirates turned a double play to end the inning. Brett Wallace reached on a two-out single in the fifth for Houston's next hit, and Karstens responded by retiring six straight.
Neil Walker helped set up the only run. He reached on a leadoff single in the second and moved up on a wild pitch before Jones' hit gave him 20 RBIs on the year.
"It's 1-0 in the second inning, and you still think you have chances, a lot of opportunities to get back in the game," Norris said. "That is what I kept doing -- I kept it right there."
Jones singled again with one out in the fourth, but was caught stealing. Norris walked Lyle Overbay but got out of the inning by retiring Michael McKenry.
Pittsburgh's Andrew McCutchen singled in the sixth to extend his hitting streak to a career-high 13 games. He was shaken up after being hit in the groin with a ball on a slide back to first base after an abandoned steal attempt, but remained in the game.
Hurdle was happy with the performance of his defense in backing up Tuesday's solid pitching.
"Our defense has really stepped up," he said. "Our pitchers have been so effective so it heightens the awareness. Guys are in tune -- in step. We've been able to pitch the zone so we have been able to set our defense specifically and expect the ball to be hit in those areas and that's what's been happening more often than not and the guys are looking forward to making plays."
The Astros fired pitching coach Brad Arnsberg. He was replaced on an interim basis by Doug Brocail, a former pitcher for the team. ... Pittsburgh RHP Jose Ascanio cleared waivers and was outrighted to Triple-A Indianapolis.