Darwin Barney homered and Matt Garza threw seven shutout innings to lift the Chicago Cubs to a three-game sweep of the Arizona Diamondbacks with a 3-1 win Sunday.

Barney clubbed a Trevor Cahill pitch into the left-field bleachers for a two-run homer in the second inning to help Chicago match a season high with its fourth straight win.

Garza (5-7) held Arizona to five hits and one walk, striking out seven en route to his first win in July. He's allowed three earned runs or fewer in his last 18 starts at Wrigley Field.

Carlos Marmol got the last two outs for his 10th save. He allowed a pair of baserunners, but struck out Geoff Blum and got Gerardo Parra on a comebacker to end it.

Cahill (7-8) allowed three runs on four hits over 5 1-3 innings, losing for the third time in his last four decisions.

Aaron Hill hit his 12th homer in the eighth and reached base three times to pace the struggling Arizona offense. His homer snapped a 14-inning scoreless streak for Cubs reliever Shawn Camp.

Barney's homer was his fourth of the season, doubling his total from 2011. He added a sparkling play up the middle on Gerardo Parra's grounder to end the Arizona seventh and extended his errorless streak at second base to 75 games.

Rookie Anthony Rizzo singled up the right-field line to score David DeJesus in the first. Rizzo is hitting .356 with 10 RBIs in 15 games since being recalled from Triple-A Iowa.

The streaking Cubs have won 12 of their last 16 games since June 25, the best record in baseball over that span. Chicago outscored Arizona 15-3 in the series.

The defending NL West champion Diamondbacks had the second-best record in the National League after the All-Star break last season, but they opened the second half this year with their first sweep at Wrigley Field since May 2008.

With the trade deadline approaching, Garza has been the subject of ubiquitous trade rumors. With scouts of several teams in attendance Sunday, he was in control throughout, allowing more than one baserunner in just two of his seven innings.

Garza struck out Justin Uptown swinging with two on to end the third, getting the struggling slugger on an off-speed pitch. He repeated the trick against Parra, who chased a pitch in the dirt with two runners on to end the fourth.

Upton, the subject of trade rumors himself, went 0 for 4 and went hitless in 10 at-bats during the series.

Garza was aided by a double play to end the fifth, the Cubs' 10th straight game with a DP ball. That is Chicago's longest streak with a double play since turning one in 11 straight games from May 20 to 31, 1994.

NOTES: Arizona OF Jason Kubel was held out of the starting lineup for a second straight day because of tightness in his right hamstring. He suffered the injury while slipping on a wet field in Friday's game. He pinch-hit in Saturday's contest and Diamondbacks manager Kirk Gibson said the club is hoping to avoid placing Kubel on the disabled list. ... Former Cubs pitcher Kerry Wood paid a visit to his old clubhouse before the game, his first trip to Wrigley Field since his retirement ceremony on May 19. ... Cahill, who entered the game with just three hits in 45 at-bats, singled twice for his first career two-hit game.