MacKinnon's goal gave the Avalanche a 3-1 lead, allowing them to survive Matt Stajan's score that came on a deflection with 1:55 to play.
Colorado won for the third time in four games with Jean-Sebastien Giguere stopping 26 shots. He improved his record to 7-0-0 this season.
Kris Russell scored for Calgary in the first period, but the Flames came up short in their bid for a season-high third straight win. Karri Ramo gave up the three Colorado goals on 25 shots.
Boston schools pull out free condoms over wrapping complaints
NBC reportedly holds celebs hostage to Jimmy Fallon's show