As for Cahill, in his second career start against the Padres, he was dominant without being dominant. He walked three and struck out five but got 14 ground-ball outs.
"He has a good sinker, and that was evident. We couldn't really dig the ball out. He changed speeds more than I thought he did with the A's," Padres manager Bud Black said. "He kept us off-balance."
The Padres had few chances against Cahill, though they were 90 feet away from tying the game in the fifth inning.
Second baseman Logan Forsythe, reinstated from the 60-day disabled list earlier in the day, lined a ball to center field that sailed over the head of Gerardo Parra, who broke in on the ball instead of back. At any rate, Forsythe was left with a leadoff triple.
Everth Cabrera bounced out to first baseman Jason Kubel as Forsythe had to stay put at third. Pitcher Eric Stults came to the plate and was given the signal for a suicide squeeze. He offered at a pitch from Cahill, but then pulled the bat back. Forsythe, running on the play, was hung out to dry.
"The squeeze [pitch] kind of was up and away and I pulled back a little bit. I still got to make an effort at that. That was just on me," Stults said. "I've got to make an attempt even though it wasn't a strike and up out of the zone. That's just a mental error."
Arizona first baseman Paul Goldschmidt, who hit his second home run in as many days, said that play loomed big because "that kept us in the lead and kept the momentum going."
The game came completely unraveled for the Padres (18-37) in the sixth inning. Ryan Roberts reached on an infield single on a ball that glanced off Stults' left foot. He then advanced to third base on a stolen base when Yonder Alonso's throw on a pickoff attempt sailed into left field.
The next batter, Kubel, hit a sacrifice fly to make it 2-0, and Justin Upton followed up with a single. Miguel Montero, who two innings earlier hit a ball he thought was a home run but instead was ruled foul, drove a pitch over the fence in center field for a 4-0 lead.
The D-backs (25-29) added two more runs in the seventh inning using another home run -- their third of the game -- when Parra followed a Josh Bell walk with a home run to left field.
That was it for Stults (1-2), who was very good when he kept the ball down (eight ground-ball outs) but struggled when he elevated pitches, as he did with Montero, Parra and Goldschmidt, who had a home run in the second inning. All told, he allowed six runs in 6 1/3 innings.
"Early on I got some quick outs, was able to get some ground balls. And then that sixth inning, I got a guy on base and I think I kind of got up in the zone with some of my pitches," Stults said.
The Padres announced after the game closer Huston Street will be reinstated from the disabled list before Tuesday's game against the Giants at Petco Park. Right-hander Matt Palmer has been designated for assignment.