With the win, Toronto remained second in the Atlantic with 71 points. Montreal is third with 69 points.

"It was a tight hockey game for the most part," Tavares said. "It was fast and the game was played at a very high level. You could see the competitiveness and everyone fighting for every inch out there.

"It was obviously my first time Maple Leafs versus the Canadiens here at the Bell Centre. So much history between the two teams, foundational franchises in the NHL. Fun to be a part of it, especially on a Saturday."

Tavares scored the winner with a backhand shot to Price's glove side after the Maple Leafs successfully killed off a Canadiens power play to start the extra frame.

"We had an opportunity in overtime to win in," Price said. "I have to make a save in that third period (on William Nylander) to close it out beforehand.

"It was a good opportunity to get ahead of them."

It was the first meeting between Toronto and Montreal since the season opener, which the Leafs won 3-2 in overtime.

"Probably as close to a playoff atmosphere without being in the playoffs," Canadiens captain Shea Weber said. "It was energizing and exciting. Fun to play in."

The teams combined for three goals in 4:42 to start the game.

Shaw was back in the lineup after missing 15 games with a neck injury and wasted no time getting on the scoreboard. Shaw netted his 12th of the season 51 seconds into the game, deflecting a wrist shot by Jeff Petry past Andersen.

Montreal managed to contain some of Toronto's most explosive forwards, like Tavares and Austin Matthews, in the first period. It was the Leafs' fourth line that made the difference.

Zach Hyman stole the puck from Shea Weber behind the net and found Johnsson with a perfect backhanded cross-crease pass at 2:20 of the first. Johnsson has scored in three straight games.

Zaitsev gave Toronto a 2-1 lead at 4:42 with a wrist shot from the point on a pass along the boards from Par Lindholm. Price was screened by Frederik Gauthier and never saw the puck.

Leafs coach Mike Babcock had high praise for his fourth line.

"They were physical, they played right, they were competitive, they put the puck in, they got on the cycle," Babcock said. "They scored and set up another one. They did a real good job, every shift they played."

Montreal scored the equalizer 1:13 into the second period when Tatar sent a floating shot past Andersen on the glove side.

With Matthews in the penalty box for delay of game, Gallagher gave the Canadiens a 3-2 lead after being left all alone in front of goal.

Nylander answered 71 seconds later with a wrist shot from the face-off dot while using Weber as a screen.

NOTES: Price was playing his 600th NHL game. ... Earlier Saturday, the Canadiens acquired forward Dale Weise and defenseman Christian Folin from the Philadelphia Flyers in exchange for forward Byron Froese and defenseman David Schlemko. Weise previously played 152 games with the Canadiens from 2014-16.