PITTSBURGH -- Jake Peavy entered his start against the Pittsburgh Pirates having never allowed a run over 20 innings in three starts at PNC Park.
That streak ended before Peavy could pitch one full inning.
Meanwhile, Charlie Morton combined with two relievers on a six-hitter, Neil Walker hit a two-run home run and the Pirates beat the San Francisco Giants 4-0 on Thursday night.
"We just couldn't generate any offense," Giants manager Bruce Bochy said. "Their guy was just really good. He had movement on his fastball and a good curveball. We just couldn't get much going."
Morton (8-4) scattered four hits over 6 2/3 innings while striking out eight and walking two. He was pulled in the seventh inning with a four-run lead after the Giants loaded the bases with two outs.
"His curveball was really good," Pittsburgh manager Clint Hurdle said. "It has so much tilt and depth on it, and there's enough fastball that you can't sit on the curve. It makes it a challenge to square him up."
Jared Hughes entered and left a 3-2 offering to Gregor Blanco over the plate, who hit a sharp liner to right field. But the drive was right at Gregory Polanco, who ended the Giants' only substantial scoring threat.
"Blanco hit the ball hard and it's a different game if we find the gap with that," Bochy said. "It didn't play out."
Peavy hit Starling Marte with one out in the first and Aramis Ramirez doubled him home for a 1-0 lead. Pittsburgh added another on Jung Ho Kang's RBI double in the third.
Walker hit his 13th home run in the sixth to push the Pirates' lead to 4-0.
"Aramis' ball sneaks in and you know, the third inning, I just couldn't make a pitch to get out of that inning," Peavy said. "Obviously giving up the homer there in the sixth put us behind the eight-ball there."
Peavy (3-6) gave up four runs and seven hits in six innings. He walked one and struck out five.
"It was a 2-0 ballgame going into the sixth," Bochy said. "That's not bad. ...Overall, I thought he threw alright."
Walker, Kang and Starling Marte each had two hits.
The Pirates (72-45) moved a season-high 25 games over .500 with their seventh win in eight games, pulling within 4 1/2 games of the idle St. Louis Cardinals in the NL Central.
The Giants dropped 2 1/2 games behind the Los Angeles Dodgers, who were off, in the NL West.