TORONTO (PC) -- There weren't 100,000 people in the building, nor did the Toronto Maple Leafs and Montreal Canadiens play with snow falling from the sky.
But with the Leafs wearing their Winter Classic jerseys Saturday night, they put on a show of even more entertaining hockey at the Air Canada Centre than 17 days earlier at Michigan Stadium. They traded scoring chances and goals back and forth until James van Riemsdyk scored late to give the Leafs a 5-3 victory.
Cody Franson, Phil Kessel and Mason Raymond also scored for the Leafs (25-20-5), whose fourth straight victory was sealed by Joffrey Lupul's empty-netter. Goaltender Jonathan Bernier made 30 saves to back-stop Toronto's first four-game winning streak of the season.
Van Riemsdyk's winner with under six minutes remaining came when he took a pass from linemate Tyler Bozak and re-directed it on net. It was his 19th goal of the season.
A highlight-reel undressing of Habs defenceman Alexei Emelin by Kadri led to the Leafs' first goal 4:49 in. Kadri took the puck down the left wing, put it through Emelin's skates and fed it to Franson, who beat a helpless Price.
The Leafs dominated most of the first period, at least until Kessel and James van Riemsdyk couldn't get a shot on a two-on-one rush. When the Habs went down the other end of the ice, Gallagher drew a holding penalty on Carl Gunnarsson and he and his teammates went to work.
With the seconds ticking down on the Montreal power play, Gallagher watched defenceman Andrei Markov's shot bounce off Bernier and hit Max Pacioretty. Gallagher got it and fired it in at the 17:29 mark for his 12th goal of the season.
The Habs had the Leafs on their heels from that goal well through the midway point of the second period. Toronto's best chance in that span came when Kessel got a breakaway, but Price stoned him.
Two minutes later Kessel beat Price to make it 2-1 Leafs. Raymond got the puck and spun around at the goal line before finding Kessel, who floated across the slot and fired a perfect shot glove side.
The goal was Kessel's 300th point in a Leafs uniform. It came in his 332nd game for Toronto.
Raymond gave Toronto a two-goal lead on the power play at the 17:47 mark. It was thanks to another sublime pass from Kadri, as this one made it cross-ice to Raymond for a one-timer.
Gionta got some momentum back for the Habs when he scored with 11.2 seconds left. Bernier went down as a result of Francis Boullion's shot from the point, and Gionta was there to put back the rebound and cut Montreal's deficit to one.
Desharnais tied the score at 3 almost midway through the third period. After he beat Jay McClement on the faceoff, Desharnais went to the net and was in the right spot to deflect P.K. Subban's shot past Bernier from close range.
Van Riemsdyk's sharp-reflex goal at 14:27 gave the Leafs the lead back -- this time for good.
NOTES -- Former International Space Station commander Chris Hadfield was on hand and sang the national anthem following a standing ovation from a season-high crowd of 19,667. ... Joonas Nattinen made his NHL debut for Montreal and played 1:45, all in the first period. Nattinen replaced Rene Bourque, who was a healthy scratch. ... Toronto called up Troy Bodie from its AHL affiliate to replace the injured David Clarkson.