Adam Eaton had three hits and scored three runs for the Diamondbacks, who remained a half-game behind division-leading Los Angeles in the NL West.
Patrick Corbin (12-1) remained unbeaten in eight starts at home. Corbin allowed one run on four hits and struck out six in six innings.
Travis Wood (6-7) lasted 5 2/3 innings and took the loss. Wood, who had 17 quality starts in the first half, was roughed up for four runs on eight hits and two walks.
Junior Lake went 3-for-4 with a solo home run but the Cubs fell for the fourth time in the past six games and were outhit by Arizona 14-7.