Less than four minutes into the third period, Michael McCarron’s first goal of the season restored the Canadiens’ two-goal lead.
Carey Price made great saves down the stretch to seal the deal.
Alexander Radulov scored his 10th on a power play, 36 seconds into the second period.
That two-goal margin lasted until 18:15, when Mitch Marner fed James Van Riemsdyk for a goal that made out 4-3.
There had been five goals in 20 first-period minutes at the ACC.
Max Pacioretty opened the scoring, converting an Radulov feed 40 seconds into the game for his 19th of the season.
Three minutes later, Artturi Lehkonen beat Frederik Andersen with a stoppable shot to make it 2-0.
Then two power play goals got Toronto back into it.
With Tomas Plekanec in the penalty box, Tyler Bozak cashed a superb Mitch Marner feed to make it 2-1 at 8:25.
Radulov was in the box when the execrable Nazem Kadri made it 2-2 at 16:01.
Then with less than two seconds left in the period and the Canadiens on a PP, Nikita Scherbak – making his NHL debut – restored the lead.
Shots were 36-31 for the Leafs.