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 Cubs: The Cubs close the Cactus League schedule on Tuesday when they play host to the Brewers at HoHoKam Park in Mesa at 2:05 p.m. CT. Travis Wood, acquired from the Reds in the Sean Marshall deal and who will begin the season at Triple-A Iowa, will start. The lineup will be a preview of Opening Day and the Cubs hope Bryan LaHair is back. He has not played since Friday due to back tightness.
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.