Fernando Tatis Jr. and Jake Cronenworth led off the first and second innings, respectively, with first-pitch home runs Friday night and right-handed starter Zach Davies retired the first 13 Diamondbacks he faced as the Padres shut out visiting Arizona 3-0 in the opener of a three-game series at Petco Park.
Pinch-hitter Edward Olivares added a solo homer leading off the fifth against Arizona right-handed reliever Alex Young.
Five Padres pitchers combined on a four-hit shutout as San Diego scored a fourth win in five games against the Diamondbacks this season.
Davies had a perfect game going for 4 1/3 innings when Eduardo Escobar singled to center on a full count. David Peralta followed with a single, but Davies then retired Stephen Vogt and Jake Lamb on infield pop flies to end the inning.
Davies (2-1) allowed three hits and no walks with six strikeouts in 5 2/3 innings to earn the win. Craig Stammen retired the last Arizona batter in the sixth while Drew Pomeranz, Emilio Pagan and Kirby Yates each following with a scoreless inning. Yates earned his second save.
Tatis homered for the second straight game.
This time he lined the first pitch from Arizona starter Luke Weaver (0-3) over the center field fence for his fifth homer of the season.
Cronenworth, who has been filling in for the ill Eric Hosmer at first base, hit his second homer in three games on a Weaver changeup opening the second inning.
The Tatis and Cronenworth solo homers were the only hits given up by the right-handed Weaver, who also issued a walk with three strikeouts in just three innings.
Olivares hit his first major league homer leading off the fifth against the left-handed Young. Diamondbacks relievers retired the last 11 Padres they faced with right-hander Taylor Clarke striking out three in three perfect innings.
Cronenworth preserved the shutout by catching a line drive by Escobar to end the game with Starling Marte at third.