Carolina was playing for the first time since Ward went on injured reserve following a torn MCL that will require a recuperation of six to eight weeks.
"Tonight we came out ready to go and set the tempo at the start," Carolina coach Kirk Muller said. "Our first two periods were good and then we got into a trap of letting our guard down. Justin is a competitor. You look at his career and he's learning all the time. He knows it's going to be more than one game. He was ready for a big game and took advantage of it."
Peters, recalled from Charlotte of the AHL, had 37 saves in his first start of the season for the Hurricanes.
"Every day in the NHL is awesome," said Peters, who was 22-12-1 with a 2.29 goals-against average and two shutouts for the Checkers. "You watch Cam Ward play and he's so calm and cool back there, I just try and learn from guys like him watching them on TV. His demeanor back there really feeds a lot to the bench."
Carolina, which has won four straight games, completed a sweep of the three-game season series with the Sabres.
Staal picked up his 600th NHL point with the first of his two assists on the night on Jiri Tlusty's goal in the first period. Joe Corvo and Jussi Jokinen also scored for Carolina.
"That top line has got to be one of the top lines in the game," Muller said. "They're plus-players and they produce. They set the tempo a lot of nights, and they're tough to handle down low. They have great chemistry."
Carolina's top line struck quickly, with Tlusty beating Miller glove side from the slot on Staal's centering pass just 91 seconds into the game. Semin had the secondary assist, giving the trio a four-game scoring streak.
"We knew Justin was going to compete and battle, and he looked real solid and comfortable," Staal said. "He's a fun guy to compete in front of and I'm glad we got the win for him tonight. It's been fun playing beside two great players (Tlusty and Semin) who are playing great hockey. I'm just a part of it."
The Hurricanes outshot the Sabres 12-6 in the opening period.
Corvo made it 2-0 with a power-play goal on a blast from the left point at 12:17 of the second.
Peters' best save came with 1:17 left in the second, when he stopped Thomas Vanek's shot in the crease with the barrel of his stick. Vanek was back in the Buffalo lineup after missing two games with a lower-body injury.
The Sabres made it 2-1 on a rush 25 seconds into the third, with Hodgson picking up the change from Vanek's blast from the high slot.
But Jokinen took just 50 seconds to restore the two-goal lead, scoring on Staal's feed into the low slot with Semin again on the secondary assist.
Brennan scored a power-play goal from the right point on Jason Pominville's assist with 5:27 remaining, just 3 seconds after Jay Harrison had returned to the ice to end a 5-on-3.
But Semin scored from Staal with 3:47 left to get Carolina the 4-2 lead.
Hodgson scored short-handed goal with 34 seconds to go.
"It was obviously disappointing.," said Buffalo interim coach Ron Rolston, coaching the Sabres' first ever game at Carolina without Lindy Ruff at the helm. "We were trying to fight back in it, and they would get one right after that. We've got to do a better job of taking care of those next couple shifts after we score."
D Joni Pitkanen (lower body) missed his ninth straight game for Carolina while C Tim Brent (lower body) missed his eighth straight, and RW Chad LaRose (concussion) his second straight. ... Carolina was playing the opener of a three-game homestand. ... The Sabres were playing the second of a four-game road swing.
Copyright by STATS LLC and The Associated Press
RALEIGH, NC - MARCH 5: Justin Peters #35 of the Carolina Hurricanes gets situated in the crease during warmups...