The Padres won their fourth in a row thanks to a 104-pitch performance by Stults (6-5), who struck out three and walked one.
Two of the Arizona runners came in the first inning, during which Cody Ross delivered a sacrifice fly that brought home the Diamondbacks' only run.
Miguel Montero singled for Arizona with two away in the fourth and Stults then retired 14 men in a row before allowing a one-out single in the ninth. Stults got Paul Goldschmidt on a fly ball to right and Ross on a fielder's choice grounder to finish off the third complete game of his seven-year career.
San Diego's runs came on a two-RBI single by Logan Forsythe in the sixth. The runs were charged to Trevor Cahill (3-8), who struck out 10 in 5 2/3 innings of work.