Staal's goal 45 seconds into the period broke a 2-all tie, while Fast - who assisted on Staal's goal when a shot attempt bounced off him to set up that rebound putaway - followed by finishing at the crease off a perfect pass from Andrei Svechnikov at 2:50.
Svechnikov, Martin Necas and Nino Niederreiter also scored for the Hurricanes, who came in tied for the second most points in the league. But they got off to a slow start against a team sitting near the bottom of the NHL standings despite playing their first home game in front of limited fans.
Necas buried a shot from between the circles late in the second to tie it, then the Hurricanes controlled the final 20 minutes to claim their fourth straight win and give coach Rod Brind'Amour his 100th NHL victory.
''I thought we just decided we had to get to our game,'' Brind'Amour said. ''I think we were just fighting the whole night trying to I think find an easier way. We were fortunate to be tied going into the third. And then the guys just started playing.''
Staal also had two assists while ending an eight-game goal drought, while Svechnikov had gone without a goal for six games. Niederreiter's score was an empty-netter at 14:55, while Alex Nedeljkovic finished with 33 saves.
Filip Zadina scored twice for the Red Wings, first for a 1-0 lead in the first period and then a 2-1 lead midway through the second. Jonathan Bernier finished with 27 saves in the Red Wings' third straight loss.
''It's tough,'' Zadina said of the third period. ''It is what it is. We've got to be better in the third, for sure. Then we have a chance to win the game.''
Carolina announced attendance of 2,924, which came after Democratic Gov. Roy Cooper last week eased statewide restrictions on public gatherings because of COVID-19.
The change allowed indoor sports venues seating more than 5,000 people to host up to 15% of capacity. Fans scattered throughout the arena Thursday were required to wear masks and practice social distancing among the safety guidelines. The team also brought back its center-ice ''Storm Surge'' postgame celebration after home wins.
The game marked the first on-ice meeting between the Svechnikov brothers, Carolina's Andrei and Detroit's Evgeny.
Andrei, who turns 21 later this month, was the No. 2 overall pick in the 2018 draft and has been a rising star for the Hurricanes ever since. He admitted being a little nervous early.
''After a couple of shifts, I started thinking about my game, start focusing on that and it was good after that,'' he said.
Evgeny, 24, was the 19th overall pick in the 2015 draft. He missed the 2018-19 season with a knee injury and has two goals and two assists in four games this year, including an assist on Zadina's second goal Thursday.
About an hour after the game ended, the NHL announced a $5,000 fine for Carolina defenseman Brett Pesce for a ''dangerous trip'' of Detroit forward Robby Fabbri at 5:28 of the second period. Pesce received a minor penalty for tripping at the time.
Carolina got a boost with the return of winger Teuvo Teravainen, who had missed seven games with a concussion. He was back alongside Svechnikov and Sebastian Aho on the Hurricanes' top line and was on the ice for 14:30.
For Detroit, captain Dylan Larkin missed his fourth straight game with an upper-body injury. Red Wings coach Jeff Blashill said he hopes Larkin is ready to return next week.
HE SAID IT
''The guys gave me the puck after and I was like, `What for?''' - Brind'Amour on his 100th win.
Detroit: The Red Wings return home Tuesday to start a two-game set with reigning Stanley Cup champion Tampa Bay.
Carolina: The Hurricanes host Florida on Sunday in the second of four straight home games.
Follow Aaron Beard on Twitter at https://twitter.com/aaronbeardap
More AP NHL: https://apnews.com/hub/NHL and https://twitter.com/AP-Sports
Copyright 2021 STATS LLC and Associated Press. Any commercial use or distribution without the express written consent of STATS LLC and Associated Press is strictly prohibited.