Brendan Gallagher was the lone goal scorer for Montreal (4-3-0).
It was Montreal's second game of a five-game home stand after last week's successful Western road trip. Montreal beat the Blue Jackets 5-3 at the Bell Centre last Thursday. The Habs had won four straight before Saturday's game.
The Predators came into the game on a similar hot streak. They took seven of 10 points in five games at home before the trip to Montreal.
Weber opened the scoring with the man advantage at 12:31 of the first period. His cross-crease pass bounced off Montreal defenceman Josh Gorges and deflected past a helpless Price.
Gallagher made it 1-1 at 7:02 of the second, finishing up a scramble in front of the net by lobbing the puck over Rinne.
Lars Eller thought he gave the Canadiens the lead early in the third period when his shot from a tight angle seemingly trickled under a sprawling Rinne's arm, but the referees overturned the initial call on the ice.
Rookie Jones, playing in his first NHL game in Montreal, scored the game-winner at 18:33 of the final period. Jones, who's already turning heads this early in his career, was selected fourth overall in the 2013 entry draft by the Predators. He now has four points on the season.
The last time the Habs played the Predators, in Nov. 2011, Max Pacioretty scored the game-winner in overtime, however he sat out Saturday with a hamstring injury.
Before the game, Habs assigned defenseman Nathan Beaulieu to Hamilton.
The Canadiens welcome the Edmonton Oilers to the Bell Centre on Tuesday.