Yasmani Grandal hit a two-run pinch-hit homer in the eighth inning that propelled the San Diego Padres to an 8-6 victory over the Arizona Diamondbacks Wednesday night and their first ever three-game sweep in Phoenix.

Grandal has now homered in four of his six hits and was the seventh player since 1900 to homer in his first three hits. He hit David Hernandez's pitch just over the right field fence. Justin Upton made a leaping try for the catch but the ball bounced off his glove.

Jason Kubel, who had a grand slam for Arizona in Tuesday night's 9-5 loss, hit a three-run homer.

The Padres won their season-best fifth straight and earned their second three-game sweep of the year. Arizona has lost five in a row.

In front of 48,819 — Arizona's first home sellout since the season opener — the Padres won their first series in Phoenix since May of 2009. Before this week, San Diego had gone 1-7 at Chase since then.

Luke Gregerson (2-0) struck out the only two batters he faced in the seventh to get the victory. Hernandez (1-2) took the loss.

Chris Denorfia was 4-for-5 with a double for the Padres and scored three times.

After Ryan Roberts beat out an infield single, then scored on a pinch-hit double by Stephen Drew to make it a three-run game in the ninth, Huston Street came on and got his 13th save in as many tries. Drew took third on a deep fly ball and scored on a ground out. Upton ended the game and an 0-for-5 night by popping out as the big crowd, sticking around for the post-game fireworks, booed him loudly, as they had when he fanned with a runner at second to end the seventh. Upton stranded four runners in scoring position.

Kubel, who has 58 RBIs, gave Arizona a 3-1 lead when he knocked first pitch he saw from Jason Marquis in the first inning over the fence in right.

But the Padres tied it with single runs in the third and fourth, then went up 4-3 when Denorfia scored from first on Alexi Amarista's single to center. The Diamondbacks tied it at 4-4 in their half of the seventh. Pinch hitter Gerardo Parra singled, stole second and scored on Willie Bloomquist's single. Bloomquist stole second and Aaron Hill narrowly missed a home run down the left field line before striking out.

Upton struck out swinging. .

Hernandez hit Logan Forsyth with two outs in the eighth, then Grandal came on as a pinch hitter for the decisive home run. San Diego added a run in the ninth when reliever Bryan Shaw's throwing error on Alexi Amarista's sacrifice bunt scored Denorfia, who led off with a double. It was the latest in a series of defensive mistakes by the stumbling Diamondbacks.

Marquis allowed four runs on eight hits in 6 2-3 innings and had an RBI double. Arizona's Ian Kennedy went seven innings, giving up four runs on nine hits.

Notes: Padres manager Bud Black says RHP Ross Ohlendorf will start in place of Andrew Cashner, who was placed on the 15-day DL with a strained muscle in his right side. ... The Diamondbacks homered for the 15th time, extending a franchise record for a single season. ... Aaron Hill doubled to extend his home hitting steak to 19 games. ... Arizona was swept in a three-game series at home for the second time, losing a trio to St. Louis May 7-9. .... Rookie LHP Wade Miley (9-4, 2.87 ERA). Arizona's lone All-Star, goes for his 10th win and tries to come back from his worst outing of the season when he faces the Los Angeles Dodgers Thursday in the opener of a four-game series. The Dodgers go with RHP Nathan Eovaldi (0-5, 4.61). ... The Padres open a four-game home series with the Reds, sending RHP Edinson Volquez (5-7, 3.68) against RHP and ex-Padre Mat Latos (7-2, 4.42).