David Desharnais also had a goal for Montreal (25-14-5).
Sean Bergenheim scored for the Panthers (16-21-6) and Tim Thomas made 33 saves.
Gionta scored at 15:46 of the second. Panthers captain Ed Jovanovski gave the puck away softly behind the Florida net to Tomas Plekanec, who fed a wide-open Gionta for his seventh goal of the year.
The win was Montreal’s first against Florida this season. The Panthers beat the Habs twice last month.
The Canadiens opened the scoring at 6:23 of the first period on their first shot on net. Desharnais used Panthers defenseman Tom Gilbert as a screen to beat Thomas with a shot to his left.
Desharnais took a pass from Max Pacioretty while crossing the blue-line to start the play, fanned on the initial shot, but recovered to score his sixth goal of the year, on the backhand.
Montreal gained momentum after the goal, outshooting Florida 9-0 over the next 10 minutes.
But it was the Panthers who equalized when Bergenheim beat Price at 17:09 with a backhand goal.
Rookie Aleksander Barkov had an assist on the goal, his team-leading 15th of the year, to extend his point streak to six games. It’s the longest point streak by a rookie in Panthers history.
Bergenheim almost gave the Panthers the lead a minute later, but his shot rang off the crossbar.
Florida took 16 shots on Price in the third period, but couldn’t find the equalizer.
SUSPENSION: Buffalo Sabres defenseman Tyler Myers was suspended for three games without pay by the NHL on Monday for an illegal check to New Jersey Devils forward Dainius Zubrus’ head.
Myers was assessed a minor penalty for the hit Saturday night in the Sabres’ 2-1 home victory.
The suspension will cost Myers $84,615.