PITTSBURGH -- Getting an eight-run lead by the third inning will help any pitcher, even one who has not won in eight starts.
Martin Prado hit a three-run homer to key a five-run third inning, Paul Goldschmidt belted his 30th home run and Trevor Cahill came off the disabled list to post his first victory since May 17 as the Arizona Diamondbacks beat the Pittsburgh Pirates 15-5 on Saturday at PNC Park.
Cahill (4-10) was activated after being out since July 1 because of a bruised right hip. He went five innings and gave up four runs and seven hits while walking one and striking out four.
In his previous eight starts, Cahill went 0-6 with a 7.91 ERA.
"It felt like my debut all over again," Cahill said. "It was a weird feeling, like I hadn't done if before. I'll take the win, enjoy the great offensive support and then work on some things so I'm better in my next start."
Cahill got plenty of run support as Arizona pounded out 20 hits. Prado had four hits, Goldschmidt and Didi Gregorius each had three and A.J. Pollock, Aaron Hill, Wil Nieves and Gerardo Parra added two each. Nieves drove in three runs.
Goldschmidt's three-run homer in the ninth was his 30th home run of the season, tying him for the National League lead with Pedro Alvarez, who hit his 30th in the third inning.
Gregorious, a rookie shortstop, broke out after going 2-for-27 in his previous eight games.
"I feel like this is the beginning of what we should do from now on," Prado said. "I feel like everybody contributed.
"We're hoping to keep having this offense all the way through the end of the season. Being realistic, it's not going to be like this every day, but I liked the way we prepared for the game then everybody had good at-bats."
Jeff Locke (9-4) was hammered for eight runs and 10 hits in 2 2/3 innings while walking three and striking out two. Locke's winless streak reached four starts as he allowed more than three runs for only the second time in his last 18 starts.
"Today was a reality check for me, absolutely," Locke said. "Any start like that is a reality check. You set your standards high, you set your goals high and you're disappointed when you don't reach them. I wasn't sitting there pouting about it, though, when I came out of the game. It's just the nature of the game to occasionally have a day like this."
Starling Marte and Alvarez hit home runs for the NL Central-leading Pirates.
Andrew McCutchen had three of Pittsburgh's 10 hits, and Neil Walker and Jose Tabata contributed two each. McCutchen has had multiple hits in 10 of his last 14 games, going 23-for-49 (.469) during that span.
Pittsburgh (72-50) lost for the sixth time in their last eight games and had their lead in the NL Central reduced to two games over the St. Louis Cardinals.
"Jeff Locke was short on stuff and short on command," Pirates manager Clint Hurdle said. "It's a rough combination."
The Diamondbacks (63-58) won for the fourth time in their last five games.
Nieves' two-run double down the right-field line with two out in the first inning opened the scoring as the Diamondbacks took early advantage of Locke's wildness.
Arizona loaded the bases on one-out walks to Prado and Hill around a single by Goldschmidt.
Arizona then sent 10 men to the plate during a six-run third that finished Locke and pushed the lead to 8-0.
Gregorius doubled home the first run and Cahill followed with a two-run double before Prado capped the inning with a three-run homer, his 11th home run of the season, down the left-field line.
Prado has 13 RBIs in his last 10 games.
"I'm just on a hot streak right now," Prado said. "That's the way baseball goes."
Goldschmidt followed Prado's blast with a single, giving Arizona seven consecutive hits, which tied the club record.
The Pirates cut the deficit to 8-4 in the bottom of the third when Marte hit his 11th home run of the season and Alvarez added a three-run blast.
Pittsburgh added a run in the sixth when Russell Martin doubled and scored on Jose Tabata's single, but Joe Thatcher preserved the Diamondbacks' 8-5 lead by striking out Neil Walker with the bases loaded to end the inning.
"Thatcher's strikeout was really big," Arizona manager Kirk Gibson said. "Even though the game was 15-5, it was a close game. They had a lot of pressure on us. People are going to look at score and say it was a blowout, but it was far from that. That's a good team over there and they kept coming at us."
Pinch-hitter Jason Kubel's two-run single keyed a four-run eighth that pushed Arizona's lead to 12-5 and included a sacrifice fly by Nieves and an RBI single by Gregorius.
Goldschmidt's home run in the ninth made it a 10-run game.
NOTES: The three-game series concludes Sunday with Arizona LHP Wade Miley (9-8, 3.63) facing Pittsburgh RHP Charlie Morton (4-3, 3.79). ... The Diamondbacks optioned RHP Chaz Roe to Triple-A Reno to open a roster spot for the activation of Cahill. ... Arizona C Miguel Montero, who has been on the disabled list because of a strained lower back since July 29, began an injury rehab assignment with the rookie-level Arizona League Diamondbacks on Saturday. ... The Pirates hope RHP Jason Grilli, who has been on the disabled list since July 23 because of a strained right forearm, can begin throwing off a mound by next weekend. Grilli has converted 30-of-31 save opportunities.