The Red Wings are mired in their longest losing streak in four seasons. The slump has come after they had won their first five games of the campaign.
Iginla scored on the power play 4:37 into the second period to give the Flames a 2-0 lead and his slap shot 8:39 into the third made it a 3-1 contest. Lee Stempniak scored for Calgary late in the first period and Olli Jokinen had a power-play goal with 1:18 to play in the third.
Detroit's only goal came from Daniel Cleary on a second-period power play, his first of the season.
The win came in the opening outing of Calgary's three-game road trip.
Jimmy Howard made 21 saves to take the loss.
The Red Wings have been outscored 22-6 during their losing streak. They had defeated Calgary five consecutive times.
Detroit's next attempt to end the skid will come at home Saturday against Anaheim, which has lost four in a row.