Such stuff is one of the reasons the Chicago is in the midst of its own final-week push, this one to avoid becoming the first Cubs team since 1966 to lose 100 games.

With 99 losses already after ending a seven-game losing streak, the Cubs will have to sweep their last three games against the only major league team with a worse record -- the 106-loss Houston Astros.

"I'm expecting a little bit of a playoff atmosphere to try and avoid that number," Sveum said. "It'll be fun, at least as much fun as we can have in this season to try and stay away from it."

Anthony Rizzo had three hits and David DeJesus homered. The win was Chicago's second in its past 13 games overall.

"It wasn't the prettiest thing ever," Sveum said.

Chris Rusin (2-3) allowed one earned run and three hits in five innings.

"I was a little wild in the first inning but was able to find it between innings," Rusin said. "It feels good to get the win and we've got to try to get three more wins against Houston."

Brian LaHair's two-run single capped a four-run sixth inning against Bryan Shaw (1-6) and two other Arizona relievers.

Chicago trailed 2-1 when Rizzo and Alfonso Soriano singled with one out in the sixth. Starlin Castro was safe when first baseman Mike Jacobs couldn't pick up his grounder down the line, and the error loaded the bases.

After Mike Zagurski struck out Luis Valbuena, Matt Albers relieved. Pinch hitter Dave Sappelt hit a grounder that Jacobs scooped, but the throw to Albers covering first base was a half-second late. Sappelt's infield hit made it 2-all.

Albers then hit Anthony Recker with a pitch to force home the go-ahead run and LaHair's single made it 5-2.

LaHair was caught standing between first and second after his hit and tagged out by Jacobs to end the inning rally.

In the third inning, Rizzo was picked off between first and second when he pulled up thinking Soriano had struck out for the final out of the inning.

The Cubs added an unearned run in the seventh on a three-base throwing error by Brad Bergesen, the Diamondbacks' fifth of seven pitchers, and another error two batters later by third baseman Cody Ransom.

"We gave up seven runs and three of them were earned," Arizona manager Kirk Gibson said. "That's pretty tough. We can be frustrated but the reality of it is they had three earned runs out of seven. It wasn't a very clean game from the seventh inning on."

DeJesus homered to right off Takashi Saito in the ninth for Chicago's final run.

Rizzo doubled home DeJesus in the first against Josh Collmenter for a 1-0 lead.

The Diamondbacks scored twice in the bottom half. Ransom drove in a run with an infield single and another scored on Recker's error for dropping Rusin's throw home for a would-be force out.

Collmenter went five innings, allowing a run on six hits with two strikeouts.

"I thought we would be able to get to their guy, but they did a good job from the first inning on," Collmenter said.

NOTES: SS Castro came up limping after turning a double play in the eighth but remained in the game. ... Aaron Hill went 1 for 3 to move into fifth place on the Diamondbacks' single-season hits list with 180. ... Collmenter, who started the season in rotation but floundered, finished the year with 11 starts and 17 relief appearances. He allowed 20 earned runs in his first four starts but only 17 the rest of the way. ... Cubs 2B Darwin Barney, whose 141-game errorless streak was snapped on Friday, returned to the lineup after an off day on Saturday. ... Arizona 1B Paul Goldschmidt missed his third straight game with a sore back. ... RHP Jason Berken (0-2) will be the next to try and keep the Cubs from their 100th loss when he takes the mound Monday night against RHP Lucas Harrell (10-11) and the Houston Astros. Berken will be making his fourth start since he was claimed off waivers from Baltimore on Sept. 7. ... Arizona LHP Wade Miley (16-11) will face Colorado LHP Drew Pomeranz (1-9) on Monday. Miley is tied with Jason Jennings, the 2002 NL Rookie of the Year, for the most wins by an NL rookie since 1986.

Notable: Miley's September was worse than any of his previous months. He posted a 5.90 ERA in the month; his next worst month was June (3.46 ERA). He's still among the leading candidates for the Rookie of the Year award, locked in what looks like a close race along with Washington's Bryce Harper and Cincinnati's Todd Frazier. Miley gave up five runs in six innings against the Rockies earlier this month. He has a 3.18 ERA in three starts against them. ... Pomeranz gave up four runs in three innings against the Diamondbacks on Sept. 21, but he came back to toss five scoreless innings against the Cubs in his most recent start. He's given up nine runs in 7 1/3 innings against the Diamondbacks this season. Lefties are hitting just .163 against him, but righties are hitting .293.