Kurtis MacDermid scored early in the first and Logan O’Connor made it 3-0 in the third before the Ducks staged their comeback bid.
Sam Carrick scored a short-handed goal and Leo Carlsson added a power-play goal with 5:49 remaining in the third to make it 3-2. The Ducks pulled goaltender John Gibson for an extra skater with under a minute remaining but couldn’t tie it up.
Alexandar Georgiev finished with 32 saves for Colorado.
MacKinnon’s two assists gave him 500 for his career. He became only the fourth player in franchise history to reach the milestone, joining Joe Sakic, Peter Stastny and Peter Forsberg.
The Avalanche rolled out a mixture of line combinations with Cale Makar (lower body), Andrew Cogliano (lower body) and Valeri Nichushkin (sickness) all sidelined.
Gibson made 29 saves for the Ducks, who have lost nine of 10.
The Ducks had a five-on-three advantage with 6:49 remaining when Fredrik Olofsson drew a penalty for tripping and MacDermid for roughing. After Carlsson’s goal, the Avalanche withstood the rest of the Anaheim advantage.
Bowen Byram took a big hit to the chest in the second period from Ducks forward Max Jones. O’Connor didn’t take kindly to the hit to Byram, who has a concussion history, and drew a roughing call for going after Jones.
Byram didn’t return for the third period with what the team called an upper-body injury. Jones didn’t return, either, because of an upper-body injury.
MacDermid scored his second goal of the season 1:40 into the opening period. Known more for his physical play, he now has scored in two straight games in which he has played. In between MacDermid’s last score, though, on Nov. 24 at Minnesota, there have been five games in which he didn’t play.
First-year Ducks coach Greg Cronin knows the Avalanche and their recipe for winning well. He was the coach of the Avalanche’s AHL affiliate, the Colorado Eagles, from 2018 to 2023.
“We’ve taken our systems or injected what they did here [in Colorado] into what we do in Orange County — with a couple wrinkles,” Cronin said before the game.
It was the third and final meeting of the season for the two teams. The Avalanche finished 2-0-1 against the Ducks.