It was Montreal's second game of a five-game homestand after last week's successful Western road trip. Montreal beat the Blue Jackets 5-3 at the Bell Centre last Thursday. The Canadiens had a four-game winning streak snapped.
Nashville earned seven of 10 points in five games at home before the trip to Montreal.
Weber opened the scoring with a power-play goal at 12:31 of the first period. His cross-crease pass bounced off Montreal defenseman Josh Gorges and deflected past a helpless Price.
Gallagher made it 1-1 at 7:02 of the second, finishing 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 appeared to trickle under the arm of the sprawling Rinne, but the referees overturned the initial call on the ice.
The rookie Jones, playing in his first NHL game in Montreal, scored the winning goal in the waning moments of the third period. Jones, the No. 4 pick in this year's NHL draft, has four points this season.
The last time the Canadiens played the Predators in November 2011, Max Pacioretty scored the winning goal in overtime. He missed Saturday's game because of a hamstring injury.