Greg Holland has been perfect in converting save opportunities this season. The Rockies closer stayed that way Friday despite having less-than-perfect control.
Holland walked the bases loaded in the ninth inning before escaping, and Colorado held off the Chicago Cubs 5-3 for their season-high sixth win in a row.
After three straight one-out walks, Holland retired Ben Zobrist on a short flyball and struck out a swinging Jason Heyward for his major league-best 23rd save.
The Rockies posted their NL-leading 40th win this season and have their longest winning streak since 2014.
"The good closers know how to navigate through an inning," Rockies manager Bud Black said. "They know what they need to do and they know when they need to throw strikes. He was trying to throw strikes. It just wasn't happening."
Charlie Blackmon and Ryan Hanigan hit two-run homers and Nolan Arenado added an RBI single for the Rockies.
Heyward drove in two runs for the Cubs, who had just three singles and lost their third straight.
"I wish I would have come through in that (final) at-bat right there," Heyward said. "We did a good job against their closer to get the bases loaded. Got a couple shots to get something in. Wish it would have ended different."
Chris Rusin (3-0) won in relief as the Colorado bullpen held Chicago to one hit in the final six innings. Seth Frankoff (0-1) took the loss in his major league debut.
Cubs shortstop Addison Russell returned to the team a day after the club told him not to come to Wrigley Field while Major League Baseball investigates a domestic abuse claim.
Russell, who didn't play, had been accused of hitting his wife in a social media post that has since been deleted. Russell denied the allegation.
Rockies starter German Marquez lasted only three innings. Rusin went two innings to beat his former club and four more relievers each pitched a hitless inning.
Heyward had an RBI single as the Cubs took a 2-0 lead in the first. He drove in a run with a grounder in the fifth, pulling Chicago within 4-3.
Hanigan homered in the second off Mike Montgomery. Blackmon connected in the fourth off Frankoff. Arenado singled home a run in the seventh.
Holland then closed things out after some anxious moments.
"I didn't have command early in the inning," he said. "Luckily, I found it."
It's uncertain when Cubs manager Joe Maddon will put Russell in the lineup.
"I'm here to stay," Russell said shortly after arriving at the ballpark. "This is my job. This is what I love doing."
Although the Cubs had just three hits, they had nine walks, three batters hit by a pitch — and ample scoring chances.
"We saw 180-something pitches and scored three runs," Maddon said. "That's nearly impossible. With the number of walks, hit batters, etc., that just speaks to we have to do a better job hitting with runners base and in scoring position. We've been talking about that pretty much the entire season."
"At the end of the day, man, when you see that many pitches — 183 — you should be able to score more than three runs," he said.
Rockies: RHP Adam Ottavino (right shoulder inflammation) was activated from the 10-day disabled list and RHP Carlos Estevez was optioned to Triple-A Albuquerque. Ottavino pitched a scoreless eighth.
Cubs: RHP Kyle Hendricks, on the DL with hand tendinitis, originally was scheduled to start this game. Maddon believes the DL stint could benefit Hendricks, whose velocity has been down this season. "This might be the best thing for him," Maddon said.
Cubs RHP Eddie Butler (3-1, 3.75 ERA) takes on Rockies RHP Jeff Hoffman (3-0, 2.61) in the third game of the four-game series on Saturday. Butler was a 2012 first-round pick by Colorado and went 6-16 in three seasons with the team. Hoffman is 0-1 with a 11.81 ERA in two appearances (one start) against Chicago.