"I played way better than I played the last two games, and it was nice," said Kiprusoff, who was at his best in the first period as the Flames took a 2-1 lead despite being outshot 15-6.
|More on Red Wings-Flames|
|More NHL coverage|
Calgary was outscored 13-3 on its trip, losing once to Anaheim and twice to Los Angeles. Kiprusoff started the first two games and allowed 10 goals on 46 shots. He was pulled in the third period of the first loss to the Kings.
"Kipper's an All-Star goalie, he's the backbone of our hockey club, and he obviously kept us in there tonight and gave us an opportunity to win it in the third," said Flames forward Curtis Glencross, who also had a goal and an assist in his return to the lineup after missing two games with a sore wrist. "Big win for us.
"Nice to come back home after a disappointing road trip, it was a big bounce-back game for us."
Stempniak broke a 2-2 tie 5:37 into the third on a beautiful set up from Glencross, who wheeled deep into the Detroit zone and zipped a pass to the uncovered Stempniak in the slot for his seventh goal of the season.
"They were all puck watching, and I saw Stemper out of the corner of my eye. It had to get through a few bodies and sticks to get through to him, but luckily it did," said Glencross, who added his ninth goal at 9:12, capitalizing on Valterri Filppula's turnover along the side boards.
Blake Comeau followed with a goal 48 seconds later to make it 5-2.
"We can't just keep giving the puck away, it doesn't work like that. We're not getting anywhere," Red Wings defenseman Niklas Kronwall said. "If we want to get into the playoffs, we have to start fixing this right now, and it's up to all of us in here.
"We all have to be better and we know it. It's about time we fixed that."
Kronwall and Filppula scored for Detroit (12-10-5), which is in seventh place in the Western Conference.
"That was a disturbing loss, because all we had to do was continue to do things right, and you win the game," Red Wings coach Mike Babcock said. "Whether we don't have the maturity as a group, or the stick-to-it-ness, there is no sense in what happened here."
Detroit goalie Jonas Gustavsson struggled in his end.
"We got that big goal end of the second and we were feeling good coming into the third," Red Wings defenseman Kyle Quincey said. "Then you make a few mistakes and they capitalize. After that, it's hard to get it back."
The Red Wings held a 38-22 edge in shots.
After Calgary took the lead in the first period, Detroit tied it 2-2 at 16:39 of the second. Quincey's long wrist shot on a power play was stopped, but Filppula was there to put the rebound past Kiprusoff. The Red Wings snapped an 0-for-37 mark in road power plays.
Also earning an assist was 23-year-old rookie Gustav Nyquist, who was recalled Tuesday from Grand Rapids where he as the AHL's leading scorer with 23 goals and 37 assists.
Detroit had amassed 69 minutes, 20 seconds in road power-play time before that goal. It was the worst start to a season since the 1928-29 Detroit Cougars, who played a 44-game schedule, failed to score a road power-play goal the entire campaign.
Detroit took a 1-0 lead 3:20 into the game when Kronwall sent a slap shot past Kiprusoff.
Calgary tied it at 5:55 of the first period on a power play. Tanguay took a pass from Mike Cammalleri and made a deke to his forehand before whipping a shot into the top corner.
The Flames took a 2-1 lead at 9:52 on a lucky bounce as Bouwmeester's shot rebounded in off the skate of Detroit defenseman Jakub Kindl.
Stempniak said it's not too late for Calgary to get on a roll and climb back into playoff contention in the West.
"I know we haven't done it yet this year, but we have the team to do it," he said. "Everyone knows the situation now, you just have to look at the standings and know it's really desperate times for us. We can't really afford to lose games, especially games in a row."
- The Red Wings, who have lost three straight, continue their three-game road trip through Western Canada on Friday in Edmonton.
- Kiprusoff improved to 4-5-2, while Gustavsson dropped to 1-2-1.
- Bouwmeester's goal was his fifth of the season, matching his best output since coming to Calgary in the 2009-10 season. His career high is 15, which he reached twice in Florida.
- RW Jordin Tootoo was a healthy scratch for the Red Wings.
- Detroit C Cory Emmerton played in his 100th NHL game.