Detroit got its 13th consecutive home win, moving within one of the franchise record set in 1964-65.
Zetterberg added an empty-netter, and Pavel Datsyuk and Kris Draper also scored for the Red Wings. Dominik Hasek made 26 saves.
Radim Vrbata, and Bryan Smolinski scored for Chicago, and Nikolai Khabibulin stopped 31 shots
Datsyuk gave Detroit a 2-1 lead with short-handed goal 9:17 into the third period, just 8 seconds after Chris Chelios was called for accidentally highsticking James Wisniewski. Datsyuk stole the puck from Adrian Aucoin at the Red Wings' blue line, went in on a breakaway, and beat Khabibulin with a forehand shot after making a move for his 19th goal.
The lead didn't last long, as Smolinski connected for a power-play goal 1:29 later on a slap shot from the right circle that deflected off Mathieu Schneider's leg and past Hasek for Smolinski's 13th goal.
Zetterberg put the Red Wings ahead for good, scoring on a cross-ice pass from Datsyuk as a penalty was being called on Chicago. His empty-netter with 38 seconds left was his 32nd goal of the season, and 13th in the last 10 games.
Vrbata opened the scoring 6:24 into the first period, when he tipped Duncan Keith's attempted clear into the opposite corner for his ninth goal.
Draper tied the score for Detroit 6:34 into the second period, when his slap shot from a bad angle below the right face-off dot beat Khabibulin.
GAME NOTES: Chicago LW Rene Bourque returned after being out since New Year's Eve because of a cracked bone in his ankle. ... The United States Army held a swearing in ceremony of several recruits on the ice before the game. ... Draper's goal in the second period broke a string of eight straight Detroit goals that were either scored by Zetterberg, or on which he had an assist. The stretch was over the previous three games. ... Datsyuk's goal was the 100th of his career.