Jake Oettinger made 18 saves for the Stars (9-10-7), who lost for the fourth time in five games (1-2-2).
"We certainly had enough scoring chances -- we had 40 shots and missed a couple breakaways and tap-ins," Dallas coach Rick Bowness said. "We basically lost the game with two turnovers."
The Red Wings (10-17-4) are 3-1-1 in their past five games.
"They are a different team than the one we saw at the start of the season," Stars defenseman John Klingberg said. "They are playing a lot better, and they are tough to play against. That's a good team."
Jonathan Bernier made the save on all 22 shots he faced for Detroit before sustaining a lower-body injury in a second-period collision with Stars forward Denis Gurianov and Red Wings defenseman Patrik Nemeth. Thomas Greiss replaced him with 1:28 left in the period and made 16 saves on 18 shots.
"I don't know any more than you do," Blashill said of Bernier's status. "I'll know more tomorrow. That was a tough situation for [Greiss] to go into, but our guys like him a lot and he came in and did a great job."
The teams will finish the two-game set here Saturday.
Fabbri gave the Red Wings a 1-0 lead at 14:00 of the first period, scoring at 4-on-4, then made it 2-0 at 6:36 of the second period. Detroit scored twice on its first six shots.
Fabbri completed the natural hat trick at 9:05 of the third period, tapping in Dylan Larkin's pass after Oettinger made the save on Larkin's breakaway.
"I was yelling, 'It's all you,' to Dylan because he's got so much speed and I didn't want him to pass up a scoring chance to try to get me a hat trick," Fabbri said. "It ended up working out pretty well."
Roope Hintz cut it to 3-1 at 9:30 by tipping Gurianov's shot, and Jason Dickinson pulled Dallas within it 3-2 at 18:40 with Oettinger on the bench for the extra attacker.
"It's always frustrating when you play good hockey and keeping finding ways to lose games," Stars forward Radek Faksa said. "We don't know the reason, but we need to keep playing hard and hopefully turn this around."
NOTES: Greiss was credited with the win in his 300th NHL game. He's 139-101-32, including 2-11-4 this season. … Hintz returned after missing a 4-3 shootout loss to the Tampa Bay Lightning on Tuesday with a lower-body injury.