Pedro Alvarez and Michael McKenry each drove in a pair of runs as Pittsburgh bested Houston, 6-4, in the third edition of a four-game series.
Clint Barmes knocked in the other run, while Garrett Jones added two hits and scored twice for the Pirates, who remained hot by posting their seventh win in eight tries. They're now alone in first in the NL Central, up by a game over Cincinnati, which lost to the Dodgers Wednesday night.
Kevin Correia (5-6) allowed six hits and three runs over six innings for the win.
J.D. Martinez homered and Brian Bogusevic posted two hits, an RBI and a run scored for the Astros, who have dropped seven in a row overall and nine straight on the road.
Dallas Keuchel (1-1) was charged in defeat for seven hits and four runs over 5 2/3 frames.
Astros slugger Carlos Lee was pulled from the game in the seventh inning, and after the contest he was traded to the Miami Marlins. The Astros acquired infielder Matt Dominguez and left-handed pitcher Rob Rasmussen in exchange for the 36-year-old Lee and cash considerations.
Ahead by one, the Bucs picked up a pair of insurance runs in the seventh inning.
Neil Walker hit a leadoff single against David Carpenter, followed by a base hit from Andrew McCutchen. Two batters later, Fernando Abad entered, but Jones hit a hot shot to first which was mishandled by Matt Downs, loading the bases.
Alvarez then dumped a single up the middle which plated Walker and McCutchen for a 6-3 score.
"From the top of the lineup to the bottom of the lineup, everybody feels as though they can be a part of an inning," Pirates manager Clint Hurdle said. "They're creating the inning, extending the inning, driving in a run during the inning, scoring a run during the inning."
Jason Grilli worked a scoreless eighth. Joel Hanrahan allowed a leadoff solo shot to Martinez in the ninth but retired the next three batters to earn his 21st save.
Houston picked up a pair of runs in the second on a Jason Castro sacrifice fly and a Bogusevic RBI single, but Pittsburgh countered with three in the home half on McKenry's sac fly and a Barmes single which scored two -- the second run crossed the plate while Barmes was caught in a rundown between first and second.
McKenry's fourth-inning double sent Jones across the plate for a 4-2 contest, but Altuve's groundout in the fifth scored Bogusevic to bring the Astros within one.
"It was tough to get any runs going on a consistent basis," Astros manager Brad Mills said.
Pittsburgh has taken five of six from Houston this season, all in the Steel City, and has beaten the Astros in 11 of the last 14 at home...The Pirates haven't been nine games over .500 this late in any season since 1992...Grilli made his 300th major-league appearance.