It was Carolina's first victory over the Sabres since Game 7 of the 2006 Eastern Conference finals. Buffalo won all four games against the Hurricanes last season.
Rod Brind'Amour and Ray Whitney added goals for Carolina and Cam Ward made 19 saves to improve to 6-0 in the regular season for the Southeast Division-leading Hurricanes. Carolina has earned points in all but one of its games.
Buffalo has lost all three of its road games so far this season, scoring only six goals. Jason Pominville scored twice for the Sabres, who suffered two injuries in the defeat.
Defenceman Dmitri Kalinin left the game with a leg injury in the second period and did not return. Center Paul Gaustad was helped off the ice in the second period after Carolina's Mike Commodore clipped him in the face with the followthrough of his shot. He didn't return, either.
Carolina held a commanding lead in shots through two periods, but goalie Ryan Miller kept the Sabres in the game, making 37 saves.
Staal broke a 2-2 tie and scored the winning goal with 14:12 remaining by leaping over Miller to knock in a loose puck in the crease. It was Staal's seventh goal of the season.
That score started a big run. Hamilton scored less than two minutes later on the power play with a blast from the slot. Carolina came into the game with the third-best power play in the NHL, converting 26.5 per cent of its chances.
Stillman then tipped in a Commodore slap shot on the power play a little over three minutes later to make it 5-2.
Hedican finished the scoring with 2:19 left.
Buffalo has lost three in a row.
Notes:Carolina was without injured forwards Erik Cole (foot), Andrew Ladd (ankle) and Scott Walker (torso). ... Hurricanes RW Keith Aucoin took a high stick from Buffalo D Andrew Peters in the face in the third period and was bleeding. He left the game and didn't return.... Buffalo is in the midst of a five-game, two-week road trip. ... Brind'Amour extended his point streak to seven games.