Pirates 6, Astros 4: Michael McKenry and Pedro Alvarez drove in two runs apiece and Kevin Correia tossed six solid innings as first-place Pittsburgh clinched its sixth consecutive series win.
The Pirates have won the first three contests of the four-game series to improve to a National League-best 26-13 at home. Houston, which has lost seven straight overall, has dropped nine consecutive road games. The Astros are 9-31 away from home, the worst road mark in the majors.
The Astros staked rookie Dallas Keuchel (1-1) to a 2-0 lead on Jason Castro's sacrifice fly and Brian Bogusevic's RBI single in the second, but they couldn't hold the lead through the bottom of the inning.
McKenry's sacrifice fly cut the lead to 2-1, and the Pirates took the lead on Clint Barmes' single to left one batter later. Garrett Jones scored the tying run, and Alvarez raced home with the go-ahead run after Barmes was caught in a rundown between first and second.
Keuchel gave up four runs on seven hits and walked four in 5 2/3 innings.
McKenry added an RBI double in the fourth and Alvarez tacked on a two-run single in the seventh for the Pirates, who are nine games over .500 for the first time since the end of the 1992 season.
Correia (5-6) allowed three runs on six hits over six innings to win his third straight decision. Brad Lincoln and Jason Grilli worked scoreless frames for Pittsburgh, and Joel Hanrahan earned his 21st save despite allowing a solo homer to J.D. Martinez leading off the ninth.
GAME NOTEBOOK: The Pirates failed to hit a home run, snapping a streak of 11 straight games with at least one homer. … Pittsburgh improved to 45-36, one victory better than its record at the midpoint of the 1992 season, when it last made the playoffs. .. Houston's Chris Johnson pinch hit after missing the past three games with a strained back. He could be ready to return to the lineup Thursday. … The announced attendance was 36,827 - the seventh sellout of the season at PNC Park.