Darcy Kuemper made 25 saves for the Capitals (7-10-3), who have lost four straight and nine of their past 11 games (2-6-3).
Kuemper, who won the Stanley Cup with Colorado last season, was playing against his former team for the first time since signing a five-year, $26.25 million contract with Washington on July 13.
"I don't think that we did enough to put ourselves in position to score goals tonight. Everything was more to the perimeter than it was to the interior," Capitals coach Peter Laviolette said. "Just with the adversity throughout the course of the game, we didn't do a very good job."
Cale Makar gave Colorado a 1-0 lead at 19:39 of the first period with a one-timer from the left face-off circle off a pass from MacKinnon during a 5-on-3 power play.
MacKinnon made it 2-0 at 13:14 of the second period when he skated down from the left point, deked around former teammate Nicolas Aube-Kubel and scored glove side on Kuemper.
"I had some time and I had some ice to work with, so I wanted to attack, make that player bite one way or the other, and managed to do that," MacKinnon said.