Eight of the Dodgers' runs were unearned. Three of Arizona's errors were committed by shortstop Tony Abreu and two by first baseman Rusty Ryal.
Clayton Kershaw (8-4) gave up four hits and two walks but struck out eight over 5 2/3 innings to win for the fourth time in five decisions.
Rodrigo Lopez (4-7) was nicked for six hits and nine runs but only two were earned in a 3 2/3-inning start.
The Diamondbacks, who lost for the ninth time in 11 games against Los Angeles this season, got their only run when Mark Reynolds homered off Dodgers closer Jonathan Broxton.