The Canadiens extended their lead at the top of the Eastern Conference to three points over the New York Islanders and they lead the Atlantic Division by five from the Tampa Bay Lightning.
Manny Malhotra scored his first goal in 53 games this season to give them the lead five minutes in, and Tomas Plekanec made it 2-0 before the first period came to a close.
After a scoreless second, David Desharnais scored twice in the final period with Brendan Gallagher and Max Pacioretty assisting on both, and Price stifled any offense the Maple Leafs were able to produce, making four saves from Phil Kessel.
The New York Islanders remain top of the Metropolitan Division despite falling to a 5-3 defeat at home to the Carolina Hurricanes.
Jay McClement scored twice for the Hurricanes, including the equaliser after Michael Grabner had given the Islanders an early lead.
He was also on target in the second period, during which Carolina built a 5-2 lead on goals for Justin Faulk, Brad Malone and Michael Jordan.
They retain a two-point lead over the New York Rangers after they were beaten 4-2 by the Philadelphia Flyers, who came from 2-1 down to secure victory with third period strikes from former Ranger Michael del Zotto and Wayne Simmonds.
Defeat ended the Rangers’ 10-game point streak but they do have three games in hand on their Long Island rivals.
The St Louis Blues closed the gap on Central Division leaders Nashville with a 2-1 win over the Edmonton Oilers.
Dmitrij Jaskin put the Blues in front with 12:11 on the clock in the first period but Justin Schultz levelled in the second for the Oilers, who remain three points ahead of the league-worst Buffalo Sabres.
They slipped to a 35th defeat of the season when Paul Stastny struck for the Blues with less than six minutes remaining.
The Predators failed to make the most of a second period scoring binge as they slipped to a 4-3 defeat by the Detroit Red Wings.
Matt Cullen, Mike Fisher and Shea Weber were on target for Nashville as they battled back from a 2-0 hole to lead, but Alexey Marchenko’s first NHL goal and a 25th of the season from Tomas Tatar led the Red Wings to victory.
Buffalo 3-5 Florida
Detroit 4-3 Nashville
Carolina 5-3 NY Islanders
New Jersey 2-0 Columbus
Arizona 1-4 Boston
Toronto 0-4 Montreal
NY Rangers 2-4 Philadelphia
St Louis 2-1 Edmonton
Minnesota 3-1 Colorado
Ottawa 4-2 San Jose