The right-hander threw a four-hitter in his third career complete game in an 8-2 rout of reeling Chicago on Saturday night, adding to the Cubs' futility in the NL West.
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.
"It's good, kind of momentum for next year," Cahill said. "Even though we're out of it, if we can play good baseball for the last four games, it will just give us a whole mindset going into next year."
Justin 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.
The Cubs fell to 0-18 in road games against the NL West. They have one more chance to end that streak, in the series finale on Sunday.
Chicago has lost seven in a row, 11 of 12, and 99 for the season.
"At this point we are trying to win four games out of four right now," Cubs manager Dale Sveum said. "A lot of ways it is important because if we lose tomorrow we are going to lose 100 games. That is the bottom line. Tomorrow is as important as any game we play, West Coast or whatever. The bottom line is we have to win tomorrow not to lose 100 games."
Germano lasted 4 1/3 innings, giving up seven runs on 10 hits with five strikeouts, a walk and a hit batter.
By going nine, Cahill reached 200 innings pitched for the second year in a row.
"To get there is kind of a sweet even number," he said.
He even had a career-high two RBIs, doubling his total for the season. He drew a four-pitch, bases loaded walk from Lendy Castillo with two outs in the fifth and singled home Mike Jacobs from second in seventh. Jacobs barely evaded the catcher Wellington Castillo's tag on the throw from the right fielder David DeJesus.
"I wasn't really thinking about anything other than pitching and I kind of threw the bat out there and it fell in," Cahill said.
Cahill, a sinking fastball specialist who was acquired from Oakland last offseason, had shutouts in his other two complete games -- against San Diego on June 8 and for the Athletics against Kansas City on Aug. 2, 2019.
Arizona manager Kirk Gibson said Cahill's potential is to be better, perhaps much better.
"I told him at a bullpen in Colorado he should win 15 games easy. I thought he could be a 20-game winner," Gibson said, "but there are some things that he does within games when he gets wild, he hits guys, he walks guys and he gets in trouble. If we can eliminate that somehow I thought he could do much better than he has. ... When he's throwing the ball over the plate he's very dominant all the time."
Cahill got run support in a hurry in his final start of the season for the Diamondbacks, who were eliminated from playoff contention when the St. Louis Cardinals won Friday night.
Adam Eaton led off the Arizona first with a soft single to center, took second on Gerardo Parra's sacrifice bunt, then scored when Hill doubled to left. Hill had two doubles in the Diamondbacks' 8-3 win in the series opener Friday night.
The Diamondbacks added a run in the second when Eaton singled, took second on Parra's ground out and scored on Hill's single.
Arizona got three more in the fifth. Hill singled with one out, then Upton hit the first pitch well into the second deck down the left field line for his 19th home run. Miguel Montero was hit by a pitch and Wheeler walked. Germano seemed to be out of the jam when he got John McDonald to pop out for the second out and bring up Cahill. But the Cubs right-hander walked the Arizona pitcher on four pitches to bring home Hill and make it 7-0.
Eaton broke his right wrist when he was hit by a pitch in the seventh inning. Recovery time is estimated at 6 to 8 weeks. ... Darwin Barney was out of the Cubs lineup one day after his streak of 141 games without an error ended. Barney's streak tied the major league record for second baseman. ... Goldschmidt was out for the second game in a row with a sore back. ... Hill's 43 doubles ties him with Goldschmidt for most on the team.... Cahill set a career high in strikeouts with 155.