SAN DIEGO — Jeremy Hellickson pitched well in his third start since returning from the disabled list following a left hamstring strain.
Hellickson (9-11) allowed one run on four hits over six innings. He struck out five and walked two.
"I thought my stuff was pretty good," Hellickson said. "Fastball command was good early, and then I started elevating some pitches."
Hellickson matched Erlin with scoreless innings until the sixth, when the Padres scored on Jedd Gyorko's sacrifice fly.
"He did fine until the sixth," Diamondbacks manager Chip Hale said. "It was a good pitching matchup. I was happy with what we got out of Jeremy."
Erlin (1-1) didn't allow a hit until Ender Inciarte tripled down the left field line in the sixth. Prior to that, the Diamondbacks had been held hitless since the second inning of Friday's game, a span of 12 innings.
Erlin pitched two-hit ball for seven innings. He struck out four and walked one.
"I felt good," Erlin said. "I had a lot better fastball command this time than last time, and my changeup was good, but my curveball was hit or miss."
Craig Kimbrel retired the side in the ninth for his 38th save in 41 chances.
Cory Spangenberg had three hits for the Padres, including two doubles.
Justin Upton doubled home a run in the eighth to expand the Padres lead to 2-0 against Josh Collmenter. Upton had been hitless in 16 at-bats prior to the double.
Gyorko drove in two runs for the Padres, both on sacrifice flies.
The shutout is the sixth for the Padres this season.
"My job is to keep us in the game no matter what they're doing and attack the zone," Hellickson said. "This might be the first game where they didn't score any runs for me. It's the same mindset every game."
With the win, the Padres took the season series from the Diamondbacks for the third time in four years.
Diamondbacks: IF Nick Ahmed (lower back) was unavailable for a second straight game on Saturday.
Diamondbacks: RHP Zack Godley (5-1, 3.48) faced San Diego in his last appearance and pitched 1 1-3 innings in relief while allowing one run. His last start came on Sept. 9 against San Francisco, in which he gave up one run over five innings and earned the win.
Padres: RHP James Shields (13-6, 3.86) takes the mound for San Diego following an outing in which he gave up four runs but picked up the win in Colorado. Prior to that start, Shields held the Diamondbacks to one run over seven innings in Arizona.