PHOENIX -- Right after Yasmani Grandal swung for strike two, a paper airplane came floating from the upper reaches of Chase Field and almost hit him, coming to rest between the batter and catcher Miguel Montero.
The next pitch, on an 0-2 count, Grandal airmailed one of his own, a pinch-hit two-run homer that propelled the San Diego Padres to an 8-6 victory Wednesday night and their first three-game sweep in Phoenix.
Grandal has now homered in four of his six hits. He already had become 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 but the ball bounced off his glove.
"I can't explain it, I really can't," Padres manager Bud Black said of Grandal's big hits.
Neither can Grandal.
"If I would have known that I would hit four home runs in five games, I would have said 'No," he said. "Yeah, I'm definitely surprising myself. It's unexplainable."
He doesn't mind setting the bar high for himself, though.
"You need to make a statement when you come into the league," Grandal said, "and I guess it's working."
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 2009. Before this week, San Diego had gone 1-7 at Chase Field since then. A sweep was even more unlikely, given the history.
"Not that I've looked at records a great [deal], I just know that our time here in my tenure and even prior to me, this has been a tough place for us to play," Black said. "We just haven't fared well here. I know that the Diamondbacks feel confident here. The years they've done very well they've always done very well at home."
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 straight save. Drew took third on a deep fly ball and scored on a groundout. Upton ended the game and an 0-for-5 night by popping out as the big crowd, sticking around for the postgame 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.
"To be honest with you, I don't care anything what the fans think of me," Upton said. "My teammates, my coaches, they know I come here and I bust it every single day. I try to do everything I can to help this team. My teamates have my back and whatever the fans want to think, they can think. They can call me lazy. I have heard that in the outfield. They can call me washed up. Whatever they want to call me but at the end of the day I am thankful for every opportunity to come out on a baseball field and I will try my hardest every day."
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.
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.
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 straight time, extending a franchise record for a single season. ... Hill doubled to extend his home hitting streak 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.