A little over nine minutes into the third period, James van Riemsdyk was penalized for goaltender interference when he steamrolled into Carey Price. But replays showed that Montreal defenseman Andrei Markov knocked van Riemsdyk into Price. Plekanec scored short side exactly two minutes later.
Max Pacioretty, Rene Bourque and Brian Gionta also scored for the Canadiens, who won for the fourth time in five games.
Joffrey Lupul, Tyler Bozak and Nazem Kadri had goals for the Maple Leafs, who have dropped four straight.
James Reimer, making his fourth straight start in place of the injured Jonathan Bernier, finished with 32 saves on 36 shots. Price stopped 33 of 36 in a game that was mostly even throughout.
A turnover by Phil Kessel led to Montreal's first goal just 5:47 in. Kessel gave up the puck to David Desharnais, who then found Pacioretty with plenty of space. Pacioretty's shot went just under Reimer's glove for his 31st goal of the season, just two short of a career high.
Just over a minute later, David Clarkson fumbled the puck in the offensive zone, and Jake Gardiner was caught out of position when Brian Gionta found Bourque. Bourque's shot beat Reimer clean at 6:52 to make it a 2-0 lead.
Lupul scored after taking a pass from Mason Raymond and firing a laser of a shot past Price at 11:02 to cut the deficit in half.
Reimer and Price traded saves as their teams traded scoring chances for several minutes before the Leafs tied it up thanks to some strong work from Kessel. Reigning Norris Trophy winner P.K. Subban fell after Kessel knocked him off the puck, and the Toronto forward then managed to find Bozak all alone in front to make it 2-2 at 18:03.
All it took was another turnover by the Maple Leafs to stunt their momentum and give the Canadiens a 3-2 lead at 19:07. Along the boards in the defensive zone, Kadri tipped the puck right to Bourque, who fed Gionta for a shot that went off Toronto defenseman Tim Gleason's stick and in.
The Leafs got three excellent chances to get it back in the second period. Price stopped one, his left post stopped one and the right post another.
Toronto tied it late on an early third-period power play after Plekanec hooked Gardiner. After Raymond cycled the puck along the boards, Lupul stationed himself behind the net and found Kadri wide open in front for his career-high 18th goal at the 2:49 mark. That goal broke Montreal's streak of 25 consecutive penalties killed, which dated to March 6 against the Coyotes in Phoenix.
NOTES: Referee Greg Kimmerly was honored before working his 1,000th career NHL game. Director of officiating Stephen Walkom presented the Toronto native with a Tiffany crystal, and then captains Dion Phaneuf and Gionta gave Kimmerly sticks signed by the Leafs and Canadiens. ... Dave Bolland returned for the Leafs after missing 56 games with a severed tendon in the back of his left ankle. ... With Bernier scratched for the fourth straight game with a groin injury, Drew MacIntyre backed up Reimer. ... Bourque returned to the Canadiens' lineup after five games as a healthy scratch, replacing Ryan White. Defenseman Douglas Murray was in for Jarred Tinordi.