Kennedy (14-11) allowed one run on a first-inning sacrifice fly by Yonder Alonzo along with seven hits and six strikeouts.
Kennedy labored through the 30-pitch first before finding his stride and keeping the Padres off the scoreboard until the ninth inning when they added an unearned run off J.J. Putz, who held on for his 30th save.
The win kept Arizona 4 1/2 games out of the NL wild card. San Diego is seven games back.
Miguel Montero drove in two Arizona runs with a first-inning RBI single and a double in the fifth.
Eric Stults (6-3) suffered the loss after giving up three runs on five hits over six innings.
The win kept Arizona 4 1/2 games out of the NL wild card. San Diego, which arrived in Arizona after a 7-2 home stand, is seven games back.