Bo Horvat also scored for Vancouver, providing a bit of a cushion with a goal midway through the third period.
“It felt good in a win. If you lose, it probably wouldn’t have felt as great,” Virtanen said of his goals. “It always feels a lot better when you win. When you win games, we have fun. When you lose, you’re not having fun and you’re kind of miserable. So it was a big win for us tonight.”
Thatcher Demko stopped 32 shots for Vancouver.
It was a much-needed victory for the Canucks, who are next-to-last in the North Division.
″(Demko’s) a great goalie,” Toronto's Auston Matthews said. “He played really well tonight, he made a couple big saves for them. We had some quality opportunities there, especially at the end. He came up big so sometimes you just have to tip your hat.”
Michael Hutchinson made 24 saves for Toronto, which saw its four-game win streak halted. The Leafs had outscored their opponents 15-2 in that stretch.
The Maple Leafs were coming off a three-game sweep of the Edmonton Oilers, including a 6-1 win on Wednesday.
“There’s some games where everything just goes your way and today was one of those games where everything went Vancouver’s way,” Leafs coach Sheldon Keefe said.
“They certainly played hard and deserved it. When you play like that, normally things do end up falling your way.”
Being on the tough end of a back-to-back Thursday wasn’t an excuse for coming up short, said Leafs defenceman Justin Holl.
“I don’t think that fatigue was the main factor,” he said. “We have played a lot of games recently, but that definitely wasn’t the reason. I thought we just got out played.”
The Canucks were playing without star center Elias Pettersson, who left the morning skate with an upper-body injury Thursday and is considered day-to-day.
The teams meet again Saturday in Vancouver.
Auston Matthews nearly scored a second goal for the Leafs with less than two minutes left, but Demko stretched out across the net for a last-second save.
The Canucks have struggled to hold leads this season. But against Toronto, they seemed determined to not let the game slip away.
Vancouver started the third period with aggression, controlling the puck and peppering Hutchinson with shots.
Horvat got one past the Toronto netminder 7:56 into the period, collecting a pass from defenseman Alex Edler and launching a shot from the top hash marks. Horvat’s 10th goal of the season put Vancouver up 3-1.
Midway through the second, Toronto’s Justin Holl was called for tripping, leading to a big power play for the Canucks.
Despite the man advantage, Demko was forced to make his most impressive save of the night when Alexander Kerfoot and Mikheyev got a short-handed 2-on-1.
Kerfoot sliced a last-second pass to Mikheyev in front of the net and Demko deftly slid across the crease, stacking his pads to make the stop.
At the other end, Virtanen took a shot from a sharp angle that got between Hutchinson’s left shoulder and the crossbar, putting Vancouver up 2-1.
It was the 24-year-old winger’s second goal of the game and his third of the season. He opened the scoring 2:59 into the first.
Virtanen muscled his way into Toronto’s zone with speed and chipped a backhanded shot on net. Hutchinson seemed to get a piece of the puck before it popped up and over the goal line to give the Canucks the early lead.
Engvall responded for the Leafs 17:15 into the period, sending a wrist shot from low in the slot over Demko’s shoulder to knot the score at 1-1.
Canucks defenseman Quinn Hughes played his 100th NHL game. He has 79 points (10 goals, 69 assists) in his career. … Marc Michaelis played his first NHL game. The 25-year-old winger signed with Vancouver as a free agent in March 2020 after playing four years at Minnesota State University, Mankato.