The win marked the Wings 17th straight on home ice and seventh overall. They sit atop the league standings with 67 points.
St. Louis struck first midway through the first period when Scott Nichol, playing in his 600th career game, scored his second goal of the season off a one timer from teammate B.J. Crombeen.
It took the Red Wings only 51 seconds into the second period to even the score, as Pavel Datsyuk scored on the power-play beating St. Louis net minder Jaroslav Halak with a backhanded shot.
Detroit took the lead for good nearly eight minutes later as Johan Franzen scored his team leading 19th goal of the season off of a rebound.
Niklas Kronwall added another power-play goal for Detroit with just over three minutes remaining. It was Kronwall’s 11th goal of the season, tying his previous season high.
Wings goaltender Jimmy Howard stopped 21 shots en route to his league leading 30th win.
The loss was the first regulation loss of 2012 for the Blues. They were 8-0-1 since the New Year.
The game was physical from the start. St. Louis forward Christ Stewart fought Detroit defenseman Brad Stuart after Stuart pancaked Alex Pietrangelo. Stewart received a five minute major for fighting, two minutes for instigating the fight as well as a 10-minute game misconduct.
Just before time expired in the third period, Pietrangelo shoved Howard, to which he and the other Red Wings on the ice took exception too, causing a scuffle in front of the Detroit net.