HOUSTON -- Jack Wilson turns into a home run hitter every time he comes to Houston.
Accustomed to playing at PNC Park, which he called "the biggest baseball field ever," Wilson said he adopts a different approach at Minute Maid Park with its short left field porch.
"You notice right away in [batting practice] that it doesn't take a whole lot to get it out of here," said Wilson, who has hit 10 of his 60 career homers in Houston. "If the pitcher throws it inside, you know you can get under it a little. You just play to the elements."
Wilson singled in a run in Pittsburgh's four-run seventh and Paul Maholm pitched six solid innings for the Pirates, who ended a three-game skid.
Hunter Pence, Lance Berkman and Michael Bourn each drove in a run for Houston, which finished with 10 hits. Ivan Rodriguez went 3 for 4 and All-Star shortstop Miguel Tejada had two hits.
Berkman also committed a key error in Pittsburgh's big seventh inning. The Pirates loaded the bases with one out on three consecutive walks before Jason Jaramillo hit a grounder to first.
Berkman tried to go home but Rodriguez couldn't handle his one-hop throw, allowing Garrett Jones to score.
"Defensively we stunk," Berkman said. "The biggest blunder was that bad throw."
Astros manager Cecil Cooper felt his team let this one slip away.
"We got to make a play on the ground ball and we might be out of that whole deal right there," he said. "It's kind of a tough inning for us. A four-pitch walk and an errant throw. If it wasn't for that, we'd probably win that game."
Pinch-hitter Delwyn Young, Andrew McCutchen and Wilson followed Berkman's blunder with RBI singles to give the Pirates a 6-2 lead.
That was enough for Maholm (6-4), who allowed two runs and six hits. The left-hander was coming off a poor start against the New York Mets, when he gave up six runs and 11 hits over 4 1/3 innings.
"I made it through the first two times of the lineup without really having to use a breaking ball," he said. "The sinker and the changeup were getting a lot of grounders and if I was missing, I was just missing off the plate or down. Staying away from the middle of the plate was the biggest thing."
Joel Hanrahan replaced Maholm and was charged with a run while recording just one out. John Grabow allowed three hits in 1 2/3 scoreless innings before Matt Capps pitched a perfect ninth for his 19th save.
Wilson drove in McCutchen with a two-out drive in the third but Houston rallied. Berkman had a run-scoring groundout in the bottom half and scored on All-Star Hunter Pence's base hit in the sixth.
Brian Moehler (5-5) retired the next 11 batters after Wilson's homer and was replaced by Tim Byrdak after he issued consecutive walks with one out in the seventh. He allowed three hits and four runs.
The Astros loaded the bases with one out in the eighth, but Jeff Keppinger grounded into a double play.
Pittsburgh 2B Freddy Sanchez missed his fifth consecutive start with back spasms and manager John Russell said they hope to have the All-Star back in the lineup by Friday. Russell said Sanchez is feeling better and took some light swings. ... Pirates C Ryan Doumit, on the disabled list with a wrist injury, is 0 for 12 in four rehabilitation games in the minors after going 0 for 3 and catching seven innings on Monday for Triple-A Indianapolis.