The Diamondbacks exploded for six runs in the fourth inning off Cubs starter Paul Maholm, on four singles, a triple and an error, and got solo home runs from Justin Upton and Paul Goldschmidt in powering to their third straight win and fourth in five games.
They moved to 36-35 on the season, the first time they've been over .500 since May 4 after a win over the New York Mets to raise the D-backs' record to 14-13 at that time.
Jason Kubel continued his torrid June with two more runs batted in, giving him 22 this month alone. That's tops in the National League.
All nine starters reached based at least once for the Diamondbacks, who led 1-0, trailed 2-1, led 7-2 and then watched No. 1 starter Ian Kennedy disintegrate in the fifth. That was the only blighted spot on a winning Saturday for the D-backs, that Kennedy -- on his bobblehead night for goodness sake -- was roughed up by the lowly Cubs for five runs on 10 hits in 4 1/3 innings, tying the shortest outing for Kennedy this season.
The winning pitcher was Craig Breslow, who relieved Kennedy and allowed two hits with three strikeouts in 1 2/3 innings.
Willie Bloomquist and Goldschmidt had three hits; Upton, Kubel, Ryan Roberts and Miguel Montero had two apiece. The Diamondbacks, with 38,542 fans in attendance at Chase Field Saturday, drew the second-largest crowd of the season to the stadium (after Opening Day) and moved over the 1 million-mark in total attendance for the season (1,004,439). They also got their biggest walk-up crowd of the season, around 4,500 fans.
Montero and Upton were both hit with pitches, Montero in the hand but he shook it off and remained in the game.
David DeJesus had four hits for the Cubs, tying a career high, and Starlin Castro also went 4-for-5, tying his career high.