Halak won his second successive start and posted his fourth career shutout, his first since March 15, despite seeing the Canadiens outshot 34-16 overall, including a 13-3 margin in the third period.
"I knew they were going to be shooting more and more, but it was a great team effort," Halak said. "The guys were blocking shots and it was an unbelievable game for us."
Halak will surely start again Friday night in Philadelphia after Canadiens coach Guy Carbonneau made it clear one day earlier he intends to go with the hot hand in goal. All-Star Carey Price has struggled since his return from an ankle injury.
"He's been waiting for this for a long time," Carbonneau said of Halak. "It's unfortunate for Carey, but hopefully he can win us five, six or seven games in a row."
Montreal captain Saku Koivu tied Elmer Lach for 10th place on the Canadiens' all-time scoring list with his 623rd point, an assist after he made a spectacular play to set up Plekanec's goal 18:42 in.
Montreal has won two in a row at home after winding up a 1-4-1 road trip that punctuated a stretch of 12 losses in 15 games overall (3-11-1).
Roberto Luongo stopped 14 shots for Vancouver, which ended a four-game winning streak. The Canucks wrapped up a four-game trip that saw them win in Calgary, Ottawa and Toronto after beginning their streak with a 4-2 home win over the Canadiens on Feb. 15.
Vancouver's Mats Sundin was booed throughout his first shift, with the jeers increasing in volume whenever he touched the puck.
Sundin, courted as a free agent by Montreal GM Bob Gainey last summer, took the wrath of Canadiens' fans - who derisively chanted his name - one day after stating the Canucks were always his first choice if he chose to return to the NHL this season.
"It hasn't really changed since all the years I played here with Toronto," Sundin said. "It's been a great rivalry here all the years with Toronto, and coming in before that with the Quebec Nordiques, playing the Canadiens. To me it's one of my favorite buildings to play in on the road. It's a lot of fun. It's always a great atmosphere, a playoff type of hockey atmosphere, and it was the same tonight, so it was a lot of fun out there."
Vancouver left wing Alex Burrows got a game misconduct added to his major for cross-checking Montreal defenseman Patrice Brisebois along the boards 13:27 into the second period.
The sold-out Bell Centre crowd of 21,273 cheered when Lapierre knocked Sundin to the ice with a check behind Montreal's net in the first period.
Before opening the scoring with a highlight reel goal, Plekanec put the Canadiens in a hole when he was sent off for slashing with Alex Kovalev already in the box serving a double-minor for high sticking.
Down two skaters for a full 2 minutes, Montreal had just about finished weathering the storm when Saku Koivu stripped Vancouver's Kyle Wellwood in the Canadiens' zone. The Montreal captain then dived past Canucks defenseman Kevin Bieksa to poke the puck ahead to Plekanec, who had just exited the penalty box.
"I was just dragging the puck across the middle and (Plekanec) came out of the box and I didn't recognize it in time," Wellwood said.
Plekanec drove in on a clear breakaway and put a shot past Luongo into the top left corner of the net. He singled out the penalty-killing unit's effort as the game's turning point.
"It was just a great effort by those guys," Plekanec said.
Halak robbed Pavol Demitra on a two-man break with Wellwood midway through the second period before making a glove stop on Mattias Ohlund. He also denied Henrik Sedin on a short-handed breakaway later in the period. Brisebois cleared a puck away from the goal line in the third to salvage Halak's shutout.
Montreal missed an opportunity to add to its lead when Kovalev put a low wrist shot off the left post, but Markov made it 2-0 with his eighth goal late in the second period. The Russian defenseman redirected Plekanec's pass across the goalmouth into an open left side before Luongo could move across.
It was the Canadiens' eighth power-play goal in four games since veteran defenseman Mathieu Schneider returned to Montreal in a Feb. 16 trade with Atlanta.