VANCOUVER — After a series of games where the Maple Leafs appeared to be unstoppable, Toronto finally hit a stumbling block Thursday.

The Vancouver Canucks beat the Leafs 3-1, snapping Toronto's four-game win streak.

“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.”

In the four games prior to Thursday, Toronto (18-5-2) outscored its opponents 15-2, including a 6-1 drubbing of the Oilers in Edmonton on Wednesday to complete a three-game sweep.

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.”

It was a much-needed victory for the Canucks (10-15-2), who linger in second-last place in the North Division.

Vancouver got a big performance from goalie Thatcher Demko, who stopped 32 shots and drew praise from Toronto's marquee centre, Auston Matthews.

"(Demko’s) a great goalie," 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.”

The game's momentum seemed to shift midway through the second frame when 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 Ilya 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.

The Canucks netminder said he actually misread the play.

“I just did it," he said of the pad stack. "You’re not really thinking in those situations. You’re just trying to get in front of it and make a save. Just happy it didn’t go in.”

Vancouver recovered and sent the puck to the other end of the ice, where left-winger Jake Virtanen got off a sharp-angle shot that snuck into the space between the left shoulder of Leafs goalie Michael Hutchinson and the crossbar to put Vancouver up 2-1.

It was the 24-year-old winger's second goal of the night and his third of the season.

"It felt good in a win. If you lose, it probably wouldn't have felt as great," Virtanen said of the 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."

Bo Horvat also scored for Vancouver, burying a snap shot midway through the third period to give his side some breathing room.

Pierre Engvall had the lone goal for the Leafs with Mikheyev notching an assist.

Hutchinson stopped 24-of-27 shots for Toronto.

Matthews nearly clawed out a second goal for the Leafs with less than two minutes left on the clock, but his shot rang off the post.

While the Canucks have struggled with holding leads this season, they appeared determined Thursday to not let another game slip away.

The squad started the third period with aggression, controlling the puck and peppering Hutchinson with shots.

Canucks coach Travis Green said the third frame was his team's best period of the night.

"I just like that we stuck with it, we kept skating, we kept pressuring," he said. "I thought we made good decisions, not just with the puck but without the puck, which is an area that we've been talking a lot with our group. That was (a) good third period."

Keffe also liked the way his group finished out the game.

“I thought we did a good enough job again defensively to give ourselves a chance to hang around and look to earn some points in the third period," he said. "They were just quicker and harder than we were in the third and seemed to have more in the tank.”

The two sides will square off again in Vancouver on Saturday.

NOTES: The Canucks were playing without star centre Elias Pettersson, who left morning skate with an upper-body injury Thursday and is considered day-to-day. … Canucks defenceman Quinn Hughes played his 100th NHL game. He has 79 points (10 goals, 69 assists) across his career. … Marc Michaelis played his first NHL game. The 25-year-old left-winger signed with Vancouver as a free agent in March 2020 after playing four years at Minnesota State University, Mankato.

This report by The Canadian Press was first published March 4, 2021.