"We got outshot 15-4 at home in the third period in a game that desperation on both sides should show," Red Wings coach Mike Babcock said. "We were playing against a team that wants to get in the playoffs. We need to show that we want to be in, as well."
The Flames moved into eighth place in the Western Conference and pushed Detroit to ninth.
"Obviously, you could tell how much was on the line," Iginla said.
Iginla snapped his 19-game streak without a goal against the Red Wings to make it 2-all, scoring against them for the first time since March 3, 2004.
"It's been a while," he said. "It felt good."
Since Iginla's last goal versus Detroit, he scored enough against everybody else to rank fourth in the NHL in goals.
"He's one of the premier scorers in the league," Detroit's Jason Williams said. "It's tough to keep a guy like that off the scoreboard."
Calgary's Miikka Kiprusoff did a good job of doing that to Detroit, making 28 saves to help the Flames win their third straight.
Babcock said Jimmy Howard, who also stopped 28 shots, gave the Red Wings a chance to win.
But Babcock blamed his team for failing to clear the puck from its end when Calgary scored the tying and go-ahead goals in the third. Detroit ruined a chance to win a third straight game and fourth out of five since the Olympic break.
Inconsistency more than injuries has become the biggest problem for the Red Wings, 8-8-6 the last two months.
"We play one, then not the next one," Babcock said. "We need to put a string together."
If Detroit doesn't, a remarkable run might end. The Red Wings have been in 18 straight postseasons, the longest streak in sports.
"Losing tonight definitely makes it a little harder on ourselves," Williams said. "It's not going to be easy."
Following a slow start, Detroit bounced back to take control of the game.
Calgary's Daymond Langkow scored 5:18 into the second after a scoreless first.
After Iginla ended his drought against Detroit, Bourque scored the winner 7:16 into the third.
The Red Wings had a power play shortly after falling behind, but couldn't take advantage, then got called for two penalties.
Calgary gave them hope when Ian White was called for tripping with 2:45 left in the game to set up a 4-on-4 situation and a power play that lasted just less than a minute.
Howard was pulled, giving Detroit a two-man skating advantage, but it didn't do much with the opportunity and gave up an empty-net goal to Christopher Higgins with 45 seconds left.
"The team that worked the hardest won the game," Babcock said.
The Flames moved into eighth place in the West with 75 points -- and 16 games left in the regular season. They are one point ahead of the two-time defending conference champions.
"Every game is such a big game and we have to treat each one like a playoff game," Calgary coach Brent Suter said.
- Iginla scored his 31st goal this season, his 11th straight with at least 28 goals.
- The Red Wings were booed off the ice.
- Datsyuk, who has a six-game point streak, and Bourque both scored their 20th goals.