MacKinnon won it with his second goal of the game when he skated around J.T. Miller and scored short side from the left circle after Vancouver scored twice late in the third period to tie it with goalie Thatcher Demko pulled for the extra skater.
Alexander Edler cut it to 4-3 at 17:23, receiving a cross-ice pass from Quinn Hughes and scoring into an open net after Matt Calvert went down after blocking a shot by Elias Pettersson. Brock Boeser tied it 4-4 with one minute remaining on a rebound at the left post.
"It just didn't feel like it should have been an overtime game," MacKinnon said. "I just wanted to end it as quick as possible. I wanted to end it first shift and I'm glad I did."
WATCH: [All Avalanche vs. Canucks highlights]
Cale Makar had four assists, and Andre Burakovsky had a goal and an assist for Colorado (12-6-2), which is 4-1-0 in its past five games after going 0-4-1 in its previous five.
Bibeau, who made nine saves in relief of Adam Werner in a 6-2 loss to the Edmonton Oilers on Thursday, got the start because of injuries to Philipp Grubauer (lower body) and Pavel Francouz (head). It was his first start and win since Dec. 29, 2016, when he played for the Toronto Maple Leafs.
"I'll take a few days to really soak it in," Bibeau said. "It's been a while since my last start, but I worked hard and I think I grew as a person and as a player going through that adversity the last few years. Just getting hurt early this season, not playing, it was probably the darkest time for me in the last few years. It wasn't easy, but I stayed positive and kept working hard."
Adam Gaudette scored two power-play goals, and Demko made 18 saves for Vancouver (10-7-4), which is 1-4-2 in its past seven games after going 5-0-2 in its previous seven.
"We stuck with it tonight," Canucks coach Travis Green said "It was exciting. You get two late goals, I thought it was a step in the right direction for us. I felt like our guys were getting a little frustrated after the second period. They found a way to get a point."