Arizona starter Patrick Corbin set down 13 hitters in a row at one point, but the Cubs did their damage before and after that stretch.
In the first, Cubs right fielder Reed Johnson drew a one-out walk and after advancing to third on Starlin Castro's double, came home on Alfonso Soriano's sacrifice fly. Jeff Baker followed with an RBI single to give the Cubs a 2-0 lead.
The D-backs cut the deficit in half in the second when Lyle Overbay doubled and then scored on Henry Blanco's bloop single to center.
While Corbin got his bearings and kept the Cubs off the board in the second through fifth innings, the D-backs' offense heated up.
Back-to-back homers by Chris Young and Overbay to start the fourth gave Arizona a 3-2 lead.
Corbin ran into trouble in the sixth when Darwin Barney led off with a double and Johnson drove him home with a single.
One run later, Geovany Soto capped the frame with a two-run homer to left to put the Cubs up 7-3.
Jay Jackson started for the Cubs and allowed three runs on five hits over four innings.
Up next for the D-backs: The D-backs will play their first game of the year at Chase Field on Tuesday when they take on the Brewers in an exhibition contest at 6:40 p.m. MST. Josh Collmenter is slated to start for the D-backs and he is hoping to have a good outing to carry some momentum into his Sunday regular-season start against the Giants. Collmenter has struggled to find consistency so far this spring.
Steve Gilbert is a reporter for MLB.com. Read his blog, Inside the D-backs, and follow him on Twitter @SteveGilbertMLB. This story was not subject to the approval of Major League Baseball or its clubs.