Brian Elliott turned aside all 28 shots he faced to make Chris Porter's gritty second-period goal stand up as visiting St. Louis matched a season high with its fourth consecutive victory.
Patrik Berglund and defenseman Barret Jackman each notched an assist for the Blues, who have won eight of 12 and moved past the Red Wings to tie Minnesota for sixth place in the Western Conference. The Wild visit Columbus later on Sunday.
Jimmy Howard finished with 24 saves for eighth-place Detroit, which has nine contests remaining and is flirting with missing the playoffs for the first time since the 1989-90 season.
Elliott highlighted his 19th career shutout - and first in 2013 - after denying Gustav Nyquist on a breakaway with eight minutes remaining in the second period. Elliott made a brilliant glove save on Pavel Datsyuk with 21 seconds left in the third to preserve the victory.
Porter provided the lone offense with 3:32 remaining in the second period. Jackman blocked a shot in his own zone to ignite his team's rush up the ice. Berglund's bid was denied by Howard, but Porter alertly spotted the loose puck between the netminder's outstretched pads and poked it home for his second goal.
Commissioner Gary Bettman announced prior to the game that Detroit will face Original Six-rival Toronto in the Winter Classic at Michigan Stadium on Jan. 1, 2014. The teams were originally scheduled to play at The Big House on New Year's Day in 2013, but the lockout canceled the contest. ... St. Louis captain David Backes and LW Alexander Steen saw their respective three-game point streaks come to an end. ... Detroit captain Henrik Zetterberg remained one assist shy of 400 for his career. ... Referee Dan O'Halloran officiated his 1,000th career NHL game.