"It was our power play," Maple Leafs coach Mike Babcock said. "For a while tonight it was going badly. We weren't doing good things. When you don't do good things, good things don't happen. But when you start to do good things, you get competitive.
"It was great to see our guys be rewarded. Gives them a bit of swagger back and their play was the difference in the game."
WATCH: [All Maple Leafs vs. Avalanche highlights]
Kasperi Kapanen and Nazem Kadri each had two goals, Auston Matthews had a goal and two assists, and Frederik Andersen made 34 saves for the Maple Leafs (35-18-3), who are 6-1-1 in their past eight games.
Toronto went 3-for-6 on the power play after going 1-for-18 in the previous six games.
"Like I said earlier, all being on the same page," Kadri said. "That makes a big difference. Trying to make little adjustments, talking amongst the five of us and trying to draw up little plays that possibly could work. That was the difference. It was nice to get a couple tonight, for sure."
Alex Kerfoot and Ryan Graves scored for the Avalanche (22-23-11), who are 0-5-3 in the past eight games, allowing at least four goals in seven of them. Semyon Varlamov gave up four goals on 17 shots before being pulled. Philipp Grubauer made 10 saves in relief.
"I thought Grubauer did a really nice job coming in cold," Avalanche coach Jared Bednar said. "I thought [Varlamov] was great. He was giving us a chance to win. What's he going to do on the power play? They're seam passes to quick spots on and off the guys' tapes. It's great execution by them and I don't think he has a chance.
"I pulled him simply because it's been a while since [Grubauer] got in the net and tried to spark our team. That was not a goalie pull, but he was great and [Varlamov] was pretty darned good too."
Toronto took a 1-0 lead at 3:17 of the first period on a breakaway by Kapanen off a lob pass from Matthews.