PITTSBURGH - As Michael McKenry worked with Jeff Locke on Sunday, the Pittsburgh Pirates backup catcher couldn't help but think about the potential of his young battery mate.

The left-hander from Kennett High of Conway, N.H., pitched seven scoreless innings to win his fourth straight decision and Pedro Alvarez homered to lead the Pirates to a 1-0 victory over the Houston Astros at PNC Park.

"There's no telling, with the ability that Jeff has, what he might do throughout his career," McKenry said. "It's unbelievable."

Locke (4-1) held the Astros to three hits while striking four and walking two to win a pitchers' duel over Lucas Harrell. Locke has a 1.70 ERA in his last six starts, allowing seven runs in 37 innings.

Locke also showed savvy as he did not allow a run even though Houston got the leadoff man on base in four of his seven innings.

"I didn't have my best stuff but I pitched through it," Locke said. "There were some pitches early on that were real good pitches that I felt I had real good command of. There were times in the game that I fell behind 1-0, 2-0 and put them in some pretty good hitter's counts but I was able to make pitches and use the defense."

Mark Melancon and Jason Grilli finished the shutout by pitching one perfect inning each. Grilli notched his National League-leading 17th save in as many opportunities.

Alvarez lined an opposite-field home run down the left-field line with one out in the fifth inning to account for the game's lone run and break up a no-hit bid by Harrell (3-5). It was Alvarez's eighth homer of the season.

"I just remember hitting it and knowing that it was going to be fair but I didn't know if it was going to carry as much as it did," Alvarez said.

Locke, the two-time New Hampshire Union Leader Player of the Year, was a combined 1-6 with a 5.82 ERA in 12 games, including 10 starts, in parts of the last two seasons with the Pirates. However, the 25-year-old won a spot in the rotation during spring training and has not lost since his first start of the season April 7 against the Dodgers at Los Angeles.

Most impressively, Locke shut down an Astros team that came into the game hitting .287 against left-handed pitching. Locke also continued a fine string of pitching by Pirates starters as they have a 2.41 ERA in May.

"He was nasty," Houston catcher Carlos Corporan said. "He had a good curveball and a good changeup, a lot of movement on all his pitches. His changeup was so heavy that he almost broke my bat with one. He was very impressive."

Pittsburgh (26-18) won for the eighth time in its last 10 games while sending the Astros (12-32) to their eighth loss in their last 10 games.

"At the end of the day, the pitcher's got to make pitches and Jeff made pitches," Pirates manager Clint Hurdle said. "McKenry game planned well with him. There weren't a lot of shakes and there weren't a lot of long sequences and pauses before he had to unload once he got on the rubber. They were in sync with their mindset and the game plan they took out there."

The same was true with Harrell and Corporan.

Harrell allowed just the one run and four hits in seven innings. He had three strikeouts and one walk.

"You could tell in the bullpen that he had a really good sinker today, so it was an easy game to call," Corporan said. "I just kept calling for sinkers because he was commanding it so well. We probably threw a couple of curveballs and that was it. He pitched great."

It was quite a contrast to Harrell's previous three starts in which he went 0-2 with an 8.79 ERA while giving up 14 runs and 13 walks in 14 1/3 innings. He credited side work with pitching coach Doug Brocail for the turnaround.

"Today felt like the first game this season that I dominated both sides of the plate with my sinker," Harrell said.

However, Alvarez hit a sinker for the decisive home run.

"It was down and way. I thought it was a really good pitch," Harrell said. "He went down and got it. He's a big, strong guy and he slapped it out the other way. There's not much you can do about that."