Nate Thompson scored, and Carey Price made 31 saves for Montreal (9-5-3), which is 5-1-1 in its past seven games.
Anze Kopitar and Blake Lizotte scored, and Jonathan Quick made 34 saves for Los Angeles (5-11-1), which is winless (0-2-1) in its past three and 1-6-1 in its past eight.
"The first period, it was a sloppy period and you can't spot a team three goals," said Kopitar, the Kings captain. "We had a good second, a good third, but we've talked about this enough so far. I mean, it's been 16 games in, you can't play 40 minutes, or 45, or 55, you've got to play the full 60."
Leading up to his first goal, Weber's one-timer from the left point struck Los Angeles defenseman Matt Roy and bounced high in the air. Weber then batted the puck in just before it could strike the ice, becoming the only active defenseman with 100 power-play goals.
"That was a weird one, definitely, just waiting for it to come down, and I got lucky on the timing," Weber said.
The Canadiens went up 2-0 on Thompson's goal 15 seconds later off a pass from Artturi Lehkonen at 10:28.
Weber made it 3-0 six seconds into a power play with a one-timer from the left point.
Kopitar scored on the power play at 2:41 of the second, one-timing a centering pass from Alex Iafallo to make it 3-1.