With the win, the Red Wings extend their lead over the Flames in the standings to three points. Detroit sits in eighth place with 80 points while Calgary is in ninth with 77.
After Brad Stuart held the puck in the Calgary zone, Franzen gained control and spun at the left point before blasting a shot that was heading wide of the net. Holmstrom reached out at the edge of the crease and tipped it into the top of the net.
Calgary had opened the scoring just 1:47 into the first period, when Craig Conroy shoveled the rebound of a Nigel Dawes chance past Detroit goalie Jimmy Howard, after the Red Wings failed to clear their own zone.
The Flames had the chance to make it 2-0 with 1:30 remaining in the second. On a Detroit power play, Curtis Glencross broke down the ice and was hooked by Jason Williams, leading to a penalty shot.
Streaking in on Howard, Glencross snapped a shot from the high slot that Howard knocked aside.
Only 40 seconds later, Pavel Datsyuk got the Red Wings on the board, skating from the top of the right faceoff circle to the edge of the slot to lift a shot past Kiprusoff through a Holmstrom screen.
Howard finished the game with 22 saves on 23 shots. Kiprusoff stopped 26 of 28 Detroit chances.
The Wings scored on their only power play chance of the night. The Flames were scoreless on four chances with the extra attacker, including a third-period four-minute power play.
The Red Wings are now off until Friday when they visit the Edmonton Oilers.