WATCH: All Sabres vs. Hurricanes highlights
William Carrier and Brian Gionta scored for the Sabres (16-17-9), who have lost two straight.
Buffalo capitalized on a Carolina turnover to take a 1-0 lead at 4:24 of the first period. Ryan O'Reilly intercepted Jaccob Slavin's pass and quickly got the puck to Carrier at the left post for a tap-in.
Skinner scored twice in a 55-second span in the second period to give the Hurricanes the lead. He made it 1-1 at 1:48 when he scored off Anders Nilsson's glove after taking a pass from Derek Ryan. The goal was Skinner's 300th NHL point.
"I thought I saved it but it went off my glove and ended it up in the net," Nilsson said. "After that, they came pretty hard and pretty fast, and they got some momentum from the first goal and scored a few more pretty fast after that. So that's too bad. That kind of changed the game a little bit."
Carolina took a 2-1 lead on Skinner's 17th of the season. Justin Faulk made a long diagonal pass from the defensive zone to Skinner at the offensive blue line. Skinner took a wrist shot that went inside the far post at 2:43.
"It definitely sparked us throughout the lineup," McGinn said. "It was a big moment and a turning point in the game."
McGinn scored his third of the season to put the Hurricanes up 3-1 at 6:51. Nilsson gave up a rebound on Elias Lindholm's shot, and McGinn went to his backhand for the goal.
"Seeing them score and getting affected by it, you can just see us start thinking again," O'Reilly said. "We start thinking and we start to get a little more individual and it breaks us down and it's frustrating."
Gionta scored shorthanded to cut the lead to 3-2 at 11:49. After a long aerial pass by Evander Kane from the Buffalo defensive zone, Ward sent the puck behind the net, but Gionta circled the net and tucked a shot in on his backhand.
Victor Rask scored his 13th goal to make it 4-2 at 4:15 of the third period. After Noah Hanifin missed wide from the slot, Rask got to the rebound low in the right circle.
McGinn drove the net for his second of the game to make it 5-2 at 7:58, taking a pass from Jordan Staal, who circled the net to set up the goal.