Kennedy (2-1) assisted his own cause by driving in a run on a groundout in the second inning. He struck out three and helped lift the Diamondbacks to their third straight victory.
Juan Gutierrez, Sam Demel, David Hernandez and J.J. Putz combined to work the final 3 2/3 innings, with Putz collecting his fifth save. A walk issued by Demel in the seventh was the only runner allowed by the relief corps.
Justin Upton brought home Arizona's initial run with a first-inning sacrifice fly. Kennedy boosted the lead in the second, but Cincinnati closed within a run in the sixth on Joey Votto's RBI double.
Ryan Roberts doubled in a run for Arizona in the seventh.
Bronson Arroyo (2-2) allowed five hits and three runs over 6 1/3 innings to suffer the loss. Cincinnati lost its fourth in a row and has dropped nine out of 13.