Trailing 3-2 entering the final frame, Staal tied it up with an unassisted goal 3:15 into the period, and Jamie McBain made 4-3 Carolina 5 1/2 minutes later on a power play.
Staal added an empty-netter and McBain contributed an assist for Carolina, which won for only the second time in eight meetings with the Canadiens.
David Desharnais had a goal and an assist for the Habs, whose had carried a four-game winning streak into the contest.
Carey Price yielded four goals on 34 shots.
Aaron Carter is still in love with Hilary Duff
Ray Liotta sues skin care company over use of likeness