Juraj Slafkovsky, Sammy Blais and Lane Hutson each had a goal and an assist, and Ivan Demidov and Alexandre Texier each had two assists for Montreal (22-12-6), which is 3-0-2 on a seven-game road trip and 5-0-2 during its point streak. Jakub Dobes made 21 saves.
It was also the Canadiens’ first win in Carolina since April 7, 2016 (0-10-2 in previous 12 games).
Sebastian Aho tied his NHL career high with five points (two goals, three assists), and Andrei Svechnikov and Nikolaj Ehlers each had a goal and two assists for Carolina (24-13-3), which has lost two in a row and is 2-4-1 in its past seven games. Brandon Bussi made 15 saves.
Nick Suzuki gave Montreal a 1-0 lead at 3:10 of the first period. He one-timed a short backhand pass from Texier over Bussi’s glove and under the crossbar from the right circle.
Oliver Kapanen made it 2-0 at 4:06, shooting into an open net from the bottom of the left circle off a cross-slot pass from Demidov.
Ehlers cut it to 2-1 with a power-play goal at 10:47, and Aho tied it 2-2 at 12:19 when he tipped Joel Nystrom’s one-timer from the point blocker side on Dobes.
Svechnikov then put Carolina ahead 3-2 at 14:51. He knocked in his own rebound during a scramble at the edge of the crease after Dobes denied his initial point-blank one-timer from in front.
Alexander Nikishin scored another power-play goal for Carolina 54 seconds into the second period to push the lead to 4-2.
Blais got Montreal to within 4-3 at 5:01. Hutson poked the puck behind the defense, and Blais skated into it and lifted a shot over Bussi’s glove.
Cole Caufield scored his 20th goal of the season at 16:23 to tie it 4-4. He buried a one-timer short side on Bussi from the bottom of the left circle off a backhand pass from Texier on a 2-on-1.
Josh Anderson scored 23 seconds later to put Montreal back in front 5-4. Ehlers blindly threw a backhand pass into the middle of the zone, where Anderson intercepted it before shooting glove side on Bussi.
Slafkovsky extended the lead to 6-4 at 11:20 of the third. He skated the length of the ice, cut down the left wing, and scored off Bussi from a sharp angle.
Aho cut it to 6-5 with Bussi pulled for the extra attacker at 16:58, but Hutson shot into an empty net at 18:00 for the 7-5 final.
Canadiens defenseman Mike Matheson did not play because of an upper-body injury.