The 29-year-old defenseman had one goal in 45 games this season and 14 in his previous 341 NHL games.
Juraj Slafkovsky had a goal and two assists, Ivan Demidov had three assists, and Noah Dobson and Mike Matheson scored for the Canadiens (26-14-6), who are 9-2-2 in their past 13 games, and face the Washington Capitals at Capital One Arena on Tuesday for the second of a back-to-back set. Nick Suzuki and Alexandre Texier each had two assists, and Jakub Dobes made 20 saves.
Elias Pettersson, Evander Kane and Max Sasson scored for the Canucks (16-24-5), who have lost seven in a row (0-5-2), and play the second of a back-to-back set at the Ottawa Senators on Tuesday. Nikita Tolopilo made 35 saves
Montreal scored three unanswered goals in the third period to take the lead.
Matheson made it 4-3 just 29 seconds into the third with a wrist shot from between the circles that went in off the right post.
Slafkovsky pushed the lead to 5-3 at 1:07, burying a wrist shot from the right face-off circle.
Oliver Kapanen snapped Demidov's cross-ice feed through the pads of Tolopilo from the left circle at 6:05 to make it 6-3.
Pettersson gave the Canucks a 1-0 lead at 11:53 of the first period, tapping in the rebound off a Linus Karlsson shot through Dobes' five-hole from in front.
Dobson tied it 1-1 with a power-play goal at 18:13. Suzuki won the face-off in the right circle back to Dobson, who used Slafkovsky as a screen to beat Tolopilo glove side with a long-distance wrist shot.
Kane put Vancouver back up 2-1 at 1:50 of the second period when he chipped in a rebound over a sprawling Dobes following a shot from Aatu Raty.
Carrier evened it 2-2 at 4:31 with a snap shot from the slot off a feed from Suzuki. The goal was his 100th NHL point.
Carrier scored his second 20 seconds later at 4:51. Slafkovsky skated down the left side and sent a centering pass from the goal line that found Carrier as he drove to the net.
Sasson tied it at 3-3 at 9:42. Drew O'Connor skated between Canadiens defensemen Kaiden Guhle and Arber Xhekaj and slid a cross-slot pass to Sasson, who put it in off Dobes' glove.