PITTSBURGH -- The first slump of Gregory Polanco's major league career didn't last very long.
The 22-year-old phenom entered his fourth week in the majors without a hit in 12 at-bats over his previous three starts, dropping his average 50 points to .288. But a night after singling in his first pinch-hit at-bat, Polanco doubled, walked and hit his third home run.
"This game is all about adjustments," Polanco said. "You have to adjust quick. The faster you adjust, the better you do."
Charlie Morton continued his effective pitching at home for Pittsburgh, which clinched its fourth consecutive series victory.
Morton (5-9) limited Arizona to one run, five hits and three walks in six innings to lower his ERA at PNC Park to 2.13.
Pittsburgh (44-40) has won nine of 11 and moved a season-best four games over .500.
"We had a bad April. We dug a hole," Pirates manager Clint Hurdle said. "We've been digging out. That's all we're doing right now, is digging out."
Polanco has taken the opposite approach, reaching safely in 19 of 21 major league games. His line-drive shot to right off Chase Anderson in the second inning gave the Pirates a 3-0 lead.
"It's fun to watch him," Hurdle said. "He's got skills and he pays attention. The league has adjusted to him to some degree already and now he's starting to fire back a little bit."
Paul Goldschmidt went 3 for 4 with a run for the Diamondbacks, who have lost three straight.
Last-place Arizona had three errors.
"We made some mistakes tonight, and it came back to haunt us," Goldschmidt said. "That's uncharacteristic of this team and these guys; we take a lot of pride on our defense. . Tonight we didn't get it done."
Andrew McCutchen of the Pirates, who earlier in the day was named NL player of the month for June, did not play the field in the ninth inning. He fouled a ball off his left foot and winced in pain in the eighth, but continued his at-bat and singled.
After the game, McCutchen said, "I'm good to go . feel good," but would not commit to being able to start Thursday's game.
Morton has worked into the sixth inning during all eight of his home starts this season and has allowed four earned runs over 33 2/3 innings in his past five starts at home.
"When I got into a tight spot I made some good pitches," Morton said. "But I really didn't get ahead of guys. I think when I did get in a situation where some pitches had to be made, I made some pretty good pitches."
Justin Wilson, Tony Watson and Mark Melancon each worked a scoreless inning for Pittsburgh. Run-scoring hits by Starling Marte and McCutchen in the eighth inning eliminated a save opportunity for Melancon.
Russell Martin went 2 for 3 with a walk for the Pirates.
Anderson (5-4) allowed 11 baserunners and did not get out of the fourth inning.
"I wasn't able to establish the inside part of the plate tonight and just didn't do a good job of putting myself in good counts to be successful," Anderson said. "That game's on me, for sure."
Reigning NL MVP McCutchen led the NL -- or tied for the lead -- in extra-base hits (20), home runs (8) and RBIs (25). . . A day after blowing his fourth save in 23 opportunities this season, Diamondbacks manager Kirk Gibson said Addison Reed would remain his closer. ... Pirates LHP Francisco Liriano, who has been on the DL since June 11 because of an oblique strain, threw a simulated game Wednesday. He indicated it went well but no specifics were offered about a return. ... RHP Vance Worley starts for Pittsburgh on Thursday against RHP Roberto Hernandez (3-7, 4.26).