Rookie Michael Bournival and captain Brian Gionta each had a goal and an assist and Rene Bourque also scored for the Canadiens (6-4-0), who snapped a two-game losing skid and evened their record at Bell Centre to 3-3-0 on the season.
Patrick Maroon scored the lone goal and Jonas Hiller made 21 saves for the Ducks (7-3-0), who have lost two straight to start their season-long eight-game road trip.
Plekanec has four goals and three assists in his past four games, Bournival extended his point streak to four games, with two goals and three assists over that span, and Gionta has two goals and two assists in four games.
The Ducks' NHL-worst power play went 0-for-3 and has now failed to score in eight of their 10 games this season.
The loss spoiled what may have been Ducks center Saku Koivu's final game in Montreal, where he played for 14 years and served as captain for a record-tying 10 of them.
The crowd got a chance to cheer the Habs' former captain during the singing of "The Star- Spangled Banner" prior to the game as the Canadiens showed Koivu standing on the blue line on the scoreboard. When the game was no longer in doubt late in the third period, the fans began to chant "Saku! Saku! Saku!" and gave him a standing ovation with 18.7 seconds left in the game as he lined up for a faceoff and once again was shown on the scoreboard.
The crowd continued chanting his name after the final buzzer, and as Koivu came onto the ice as the game's third star, the crowd erupted into a long ovation. He acknowledged his former Canadiens teammates Francis Bouillon and Plekanec, who was named the game's first star, watching from the Montreal bench and raised his stick in the air to the fans, who refused to sit down. Finally, Koivu took a bow and departed, even though the cheers didn't appear to be slowing down.
As a potential final moment in Montreal, Koivu couldn't have asked for much better -- aside from a win.
But that looked unlikely right from the start of the game. The Canadiens came out flying from opening puck drop, and the Ducks looked sluggish, taking two minor penalties and managing just one shot on goal by the time Montreal opened the scoring at 11:39.
Ducks defenseman Mark Fistric was in the lineup after seven games in the press box, but he had just stepped out of the penalty box when Bournival established position in front of Hiller and tipped home a Nathan Beaulieu point shot for his second goal of the season.
The shots were 8-1 Canadiens at the time, and the sloppy play from the Ducks didn't stop there.
A little less than five minutes later, Ducks captain Ryan Getzlaf fanned on a clearing attempt from deep in his zone, with the puck landing on Bournival's stick at the top of the circles. He quickly passed it over to Plekanec for a one-timer that beat Hiller clean at 16:32 for his fifth of the season.