PITTSBURGH (AP) -- Neil Walker was more impressed by his team's starting pitcher than his home run.
Charlie Morton combined with two relievers on a six-hitter and Walker hit a two-run home run to lead the Pittsburgh Pirates over the San Francisco Giants 4-0 on Thursday night.
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.
"It's fun to play behind him when he's going well because he gets a lot of ground balls that lead to a lot of quick innings and you get on and off the field in a hurry," Walker said. "He was really good tonight."
Jared Hughes, who got Gregor Blanco to line out to end the seventh-inning threat, and Tony Watson completed the shutout.
Walker hit his 13th home run in the sixth inning off Jake Peavy (3-6) to push the Pirates' lead to 4-0. They had gone ahead 2-0 on RBI doubles by Aramis Ramirez in the first and shortstop Jung Ho Kang in the third.
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.
"We're playing really well right now and it's a situation where everyone is contributing, one through 25 on the roster," Pirates manager Clint Hurdle said.
The Giants dropped 2 1/2 games behind the Los Angeles Dodgers, who were off, in the NL West.
Peavy allowed four runs and seven hits in six innings with five strikeouts and one walk. He had won all three of his career starts at PNC Park but was pitching in Pittsburgh for the first time since 2008.
"I thought he settled down," Giants manager Bruce Bochy said. "He was throwing the ball well. We just couldn't generate any offense. Their guy was just really good."
ELSEWHERE IN THE NL
DIAMONDBACKS 5, REDS 4: At Cincinnati, A.J. Pollock drove in two runs with a bases-loaded single in the eighth inning as Arizona came back from a 4-0 deficit to beat Cincinnati in the opener of a four-game series. Chris Owings homered and drove in two runs as Arizona sent the Reds to their sixth consecutive loss. The Diamondbacks loaded the bases against Burke Badenhop (1-3) on Yasmany Tomas' single, Jarrod Saltalamacchia's pinch-hit double and Ender Inciarte's walk, setting up Pollock's two-out hit.
MARLINS 9, PHILLIES 7: At Miami, Martin Prado homered and drove in three runs, Marcell Ozuna had a two-run homer, and Miami held on for a win over Philadelphia. Adeiny Hechavarria had two hits to extend his career-best hitting streak to 13 games for the Marlins, who have won four of five while scoring at least six runs in all five games.
CUBS 7, BRAVES 1: At Chicago, Jake Arrieta pitched six scoreless innings for his major league-leading 15th win, and Anthony Rizzo and Addison Russell homered to lead Chicago to a victory over Atlanta. Chicago snapped a three-game losing streak after winning nine straight and 15 of 16, with Arrieta (15-6) dominating on the mound and Rizzo and Russell supplying the power at the plate. Rizzo's three-run drive capped a four-run third inning that saw Braves manager Fredi Gonzalez get ejected.
ROCKIES 3, NATIONALS 2: At Denver, Yohan Flande pitched seven strong innings and singled twice, driving in a run and scoring a run to lead Colorado to a victory over Washington. Outpitching Washington's Max Scherzer, Flande (3-1) allowed two runs and three hits to help the Rockies avoid a series sweep. Ben Paulsen singled in the seventh to drive in the tiebreaking run and Jose Reyes added three hits, including an RBI double for the Rockies. Washington's Michael A. Taylor connected for his 11th homer, a two-run drive in the seventh.
RED SOX 4, ROYALS 1: At Boston, Ryan Hanigan drove in two runs and scored another on Jackie Bradley Jr.'s triple to help Boston beat Kansas City, ending the Royals' five-game winning streak. Wade Miley (10-9) left in the eighth inning, allowing just one run. The Red Sox are 5-2 under bench coach Torey Lovullo, who took over last week when manager John Farrell announced that is being treated for cancer. Mookie Betts, Travis Shaw and Xander Bogaerts had two hits apiece for Boston.
TIGERS 4, RANGERS 0: At Detroit, Alfredo Simon threw a one-hitter in his first career complete game and Detroit beat Texas in a matchup of AL wild-card contenders. Texas entered play 1½ games behind the Los Angeles Angels for the second wild-card spot, while the Tigers were three games further back. The Rangers' only hit came with two outs in the fifth, moments after first baseman Victor Martinez had made a diving stop to rob Mitch Moreland of a base hit. Rougned Odor ended the no-hitter with a double to left, but Texas never got a runner past second base.
INDIANS 3, YANKEES 2: At New York, Josh Tomlin had his second impressive start since returning from shoulder surgery, Cody Allen worked out of his own jam in the ninth inning and Cleveland held on for a victory over New York. Tomlin only allowed Alex Rodriguez's 680th career home run leading off the fourth and a double to Chase Headley in seven deliberate innings. The right-hander has been touched for just three runs and seven hits in 13 1-3 innings since coming back from his second major operation since 2012.
RAYS 1, ASTROS 0: At Houston, Chris Archer pitched a one-hitter, allowing only a fifth-inning single by Colby Rasmus, and struck out 11 to lead Tampa Bay over Houston. It was Archer's third career shutout and second against the Astros, having also blanked them in 2013. Archer (11-9) walked one and retired the final 15 batters, fanning five. Rasmus led off the fifth with a groundball single and was the last runner for the AL West leaders. Archer bounced back from his last start when he allowed 11 hits and eight runs in 5 1-3 innings of a 12-4 loss to Texas.