Justin Upton made Petco Park look small.
The spacious outfield in the downtown ballpark is usually a place where fly balls go to die, and the dimensions have gotten into the heads of Padres sluggers since it opened in 2004.
The top sports headlines of the day
"It's definitely an intimidating park," Upton said after extending his hitting streak to 13 games. "Even during BP you hit some balls pretty good and they don't leave. This is definitely one of those parks you come in and you try to get your hits and maybe string together some doubles. You never look at coming here and hitting homers."
Interestingly enough, it was the first career multihomer game for Upton, who has six homers and 14 RBIs in his last 13.
"It feels pretty good knowing I was going up there just trying to barrel-up some balls, maybe hit gap, and mess up and hit two homers," he chuckled. "It was pretty cool."
The Diamondbacks' right fielder also threw out Henry Blanco trying to score on David Eckstein's fly ball to end the fifth.
This was a matchup of teams with two of the worst batting averages in the major leagues. Arizona was last at .226 and the Padres were third-worst at .239.
With John Garland and two relievers combining on a five-hitter, the Diamondbacks snapped a three-game losing streak. San Diego lost for the seventh time in eight games and the 13th time in 16.
Peavy (2-4) lost his third straight decision despite striking out 12. It was the second straight start the Padres failed to score while Peavy was in the game. He held Los Angeles to two hits in eight scoreless innings on Friday night before the Dodgers won 1-0 when Duaner Sanchez walked Russell Martin with the bases loaded.
"I've pitched in these type of ballgames for years," Peavy said. "You get a feel for a game, especially when one run or one pitch can beat you. Sure, there is some stress with every pitch you make, knowing that you probably shouldn't let a run cross.
"Bottom line, I have to be better. If it means throwing a shutout, I'll take full responsibility and need to do that. It's just not possible to happen every time out."
Peavy raised his career total to 1,308 strikeouts, the 25th active pitcher to reach 1,300. It was the 29th time he reached double digits in strikeouts.
Upton homered to left-center in the fifth inning. Augie Ojeda was aboard on a one-out walk.
"Not a great pitch but not terrible," Peavy said. "I just didn't get it far enough out. Talented kid. He hit it hard. It's a mistake I'd like to have back. I can't walk Ojeda there. I just didn't do my job."
Upton homered to center off Sanchez with one out in the eighth.
Garland (3-1) held San Diego to three hits in seven innings. Chad Qualls got out of a bases-loaded jam with no outs in the ninth for his seventh save in eight chances. San Diego got one run when Blanco hit into a double play. Qualls walked Luis Rodriguez before striking out hitter Chase Headley.
San Diego loaded the bases with two outs in the fifth with a single and errors on catcher Miguel Montero and first baseman Josh Whitesell, but failed to score.