Weber had not scored in the previous 16 games but gave the hosts the lead in the first period and then scored a short-handed goal 9:02 into the third period to make it 3-2.
Gabriel Bourque also scored for the Predators while Chris Butler and T.J. Oshie netted for St. Louis, which lost its fifth game in six despite the return of first-choice goalie Brian Elliott, who had missed 14 games due to injury and was called on to make 44 saves.
Nashville coach Peter Laviolette said: ???I think we were really strong, and what I liked was we got stronger.
“I really liked the way our guys just kept their focus and kept their foot on the gas.”
In another crucial encounter, Montreal won after a shootout at Florida to go to the top of the Eastern Conference.
The visitors eventually prevailed 2-1 against the Panthers, with Pierre-Alexandre Parenteau scoring the only goal in the shootout off the glove of the goalie.
The Canadiens have won seven of their past eight games and are 5-1 in shootouts. They have moved level on points with Tampa Bay in the East, and have a game in hand.
Brendan Gallagher was on target in regulation for Montreal while Nick Bjugstad netted for the Panthers.
Elsewhere, Vancouver Canucks won 3-1 at San Jose Sharks, beating their Pacific Division rivals for the seventh straight time.
And Edmonton’s David Perron netted a shootout winner to give the Oilers a 3-2 victory over Los Angeles, snapping a run of nine successive defeats for the league’s bottom team.