The Red Wings were seemingly cruising after Justin Abdelkader scored twice within the opening stages of the first period, but Sean Monahan pulled a goal back for the Flames shortly after the midway point.
Second-period goals from Matt Stajan and Jiri Hudler saw Calgary take the lead before another couple of strikes in the third, from Mason Raymond and Jiri Hudler, ensured their victory was a comfortable one.
The Pittsburgh Penguins beat the league-leading Anaheim Ducks by the same scoreline.
A brace from Patric Hornqvist and further goals from Blake Comeau and Evgeni Malkin gave them a 4-0 lead early in the third period.
The Ducks hit back with strikes from Tomas Fleischmann and Corey Perry but the Penguins had the last laugh with Sidney Crosby’s goal 11 seconds from time.
Chicago goaltender Corey Crawford made 47 saves to help the Blackhawks to a 2-1 shootout win against the Edmonton Oilers.
The Oilers lead courtesy of a first-period strike from Derek Roy but the Blackhawks forced over-time when he scored with six minutes left and Antoine Vermette scored the winning goal in the shootout.
Peter Harrold scored the winning goal as the Colombus Blue Jackets ended a seven-game winless run by beating the New Jersey Devils 3-2.
The Ottawa Senators also triumphed 3-2, but needed an over-time score from Mark Stone to edge past the Buffalo Sabres.
Third-period goals from Mikael Granlund and Zach Parise helped the Minnesota Wild record a 3-1 victory against the Carolina Hurricanes.