PHOENIX -- Trevor Cahill threw a four-hitter in his third career complete game, Justin Upton drove in three runs and the Arizona Diamondbacks added to Chicago's futility in the NL West with an 8-2 victory over the Cubs on Saturday night.
Cahill (13-12), 4-1 in his final five starts of the season, struck out a season-high nine and walked three. He was two outs shy of his third career shutout when Alfonso Soriano hit his 32nd home run of the season in the ninth.
Upton hit a booming two-run homer onto the second deck in left field in the fifth and had an RBI single Arizona's three-run first. Aaron Hill went 3 for 4 with two RBIs. He doubled in a run in the first and singled in one in the second off Justin Germano (2-10), loser of eight straight starts.