Cahill (11-11) gave up a two-run double to Adrian Gonzalez in the first inning and the Dodgers managed only two more hits the rest of the way. Cahill, Brad Ziegler and David Hernandez combined to retire the final 16 Los Angeles batters.
Arizona won for the fifth time in six games and the Dodgers dropped their third straight.
Los Angeles remained one game behind St. Louis for the second wild card position in the National League. The Dodgers, however, fell seven games behind San Francisco for the lead in the NL West.
Aaron Harang (9-9) gave up Arizona's three runs on four hits with four walks in 5 2/3 innings to suffer the loss.
North Korea sends threat -- by fax -- to South Korea
Nativity scenes to be moved at Guantanamo after troops' protest