Gionta beat Cam Ward on the glove side to halt the Hurricanes' two-game winning streak.
The Canadiens trailed 2-0 after one period, caught up early in the third and then fell behind again when Brandon Sutter scored 3:18 into the final stanza. Travis Moen again tied it for Montreal on a tip-in with 15:23 still to go in regulation.
Carey Price picked up the victory with 30 saves. Ward stopped 31 shots.