Danny DeKeyser scored twice for the Red Wings (21-22-8), who had won three in a row on the road. DeKeyser has three goals in the past two games after scoring once in his first 32 games.
"He's really played well," Red Wings coach Jeff Blashill said of the defenseman, who missed 17 games after injuring his ankle at the Dallas Stars on Oct. 10. "It was a slow start for him, I think the injury was tough and then you jump in midstream. That's tough, especially with the responsibility we put on Danny. We emphasize the importance of our D adding offense and they've done a good job of it."
Mrazek made 30 saves, and Frans Nielsen and Darren Helm each had two assists for Detroit.
Ekblad made it 1-0 at 3:14 of the first period when he took a centering pass from Huberdeau and beat Mrazek with a backhand.
DeKeyser tied it 1-1 at 8:51 of the second with a wrist shot from the slot that beat Sateri to the stick side.
Barkov made 2-1 at 13:38 when he skated down the right side and scored on a quick forehand to Mrazek's stick side.
DeKeyser tied the game again at 3:00 of the third when a rebound off a shot from the point went in off his skate to make it 2-2.
Florida had several chances in the final two minutes before Huberdeau scored.
"It was a barrage there for a while," Boughner said. "We missed some chances and we couldn't find pucks underneath people. But I was proud of the way we kept battling to the end. We found a way to win."