Updated

Jeff Locke allowed three hits over seven innings, Pedro Alvarez homered and the Pittsburgh Pirates won for the eighth time in 10 games, 1-0 over the Houston Astros on Sunday.

Locke (4-1) won his fourth straight decisions and gave up one run or fewer for the fifth time in his past eight outings. He struck out four and walked three.

The notoriously streaky Alvarez pushed his average above .200 for just the second time since the second game of the season. His eighth home run came on the first pitch and was an opposite field line drive down the left field line in the fifth.

Alvarez's longball was his second of the series and third in eight games. It was the lone mistake by Astros starter Lucas Harrell, who lost his third consecutive decision despite allowing four hits and one walk in seven innings.

Off to their best 44-game start since 1991, the Pirates (26-18) have the National League's third-best record. They won despite the absence of outfielder Andrew McCutchen, who was a late scratch because

of soreness in his right knee.

Despite allowing the leadoff man to reach four times, Locke permitted a runner to reach second base only once. In his past six outings, Locke has allowed 21 hits and seven earned runs over 37

innings (1.70 ERA).

A day after his 13-game scoreless streak came to an end, Mark Melancon worked a perfect eighth and Jason Grilli finished off the game with a 1-2-3 ninth for his majors-leading 17th save.

In addition to his home run, Alvarez walked in the second and flied out to the wall in center in the seventh.

Pittsburgh's other chance at scoring came the prior inning, when Travis Snider was thrown out at the plate by centerfielder Brandon Barnes on a two-out single by Gaby Sanchez. The throw easily beat Snider, who had doubled, and Snider's shoulder to the chest of Astros catcher Chris Corporan did not jar the ball loose.

Through 6 1-3 innings, Alvarez's home run and Snider's double were the only balls to leave the infield off Harrell (3-5), who had a single in a rare plate appearance for an American League pitcher.

The Astros, who won in 11 innings Saturday night, did not have an extra-base hit.

NOTES: Astros SS Ronny Cedeno was scratched from the lineup late Sunday morning because of a sinus infection. ... Houston has won three of its 11 series played this season while Pittsburgh is 8-2-2 in its past 12 series. ... The Pirates are off Monday but then play on 16 consecutive days. They open up a three-game series against the Chicago Cubs at PNC Park on Tuesday. ... Astros LHP Dallas Keuchel will make his third start of the season in the opener of a three-game series in Kansas City on Monday.