The Hurricanes, who started the evening five points out of the eighth playoff position in the Eastern Conference, won their fourth in a row.
Florida, which sits atop the Southeast Division, had a five-game winning streak snapped.
Staal opened the scoring 46 seconds into the game and the Hurricanes led the rest of the way. He gave Carolina a 3-1 cushion with a power-play goal midway through the third.
Joni Pitkanen put Carolina in front 2-0 with 9:05 to go in the middle period.
Jose Theodore stopped 36-of-39 shots for the Panthers.