CALGARY, Alberta -- Steve Begin couldn't recall scoring a stranger pair of goals.
"We always say when you work hard, things somehow (are) going to turn for you," Begin said. "I guess it happened tonight not once, but twice."
Begin took advantage of a pair of blunders by goalie Jimmy Howard to score his third and fourth goals of the season.
"The guys think I cut a deal with the goalie on the other side," Begin said. "Two goals, two similar ones. I can't really tell you what happened. I was just chasing the puck and it ended up on my stick. It's always good to get those goals."
Lee Stempniak also scored for the Flames (17-22-4), who won all three games against the Red Wings this season.
Detroit dropped to ninth in the Western Conference, two points behind Columbus and the postseason cutoff. Detroit has five games remaining, one more than Columbus.
After being chosen as the first star of the game, Kiprusoff was given a loud ovation by the fans in attendance.
"It was a pretty nice feeling to play in front of them," Kiprusoff said. "As a player, you really appreciate that. It makes your job so much easier when the crowd is behind you."
Howard, who signed a six-year, $31.8 million contract on Tuesday, stopped 14 shots.
"It's a tough thing to swallow, but what doesn't kill you makes you stronger," Howard said. "I've got to forget about this and get ready for Saturday night in Vancouver."
Early in the third period, Howard played the puck behind his net and attempted to send a pass to defenseman Jonathan Ericsson. Begin noticed the puck got tied up in Howard's feet, and he alertly poked it off the goalie's right skate and into the net.
Later in the frame, with Calgary defenseman Dennis Wideman in the penalty box for cross-checking, Howard mishandled the puck while again trying to play it behind his net.
Begin was again the beneficiary as he picked up the loose puck and scored into the empty net to give Calgary a 3-1 lead.
"I made a mistake on the third one, simple as that," Howard said. "Last time I checked I'm human. It was a tough one because it was the game winner.
"It's on me."
Franzen pulled the Wings to within one with an unlikely goal with 2:42 remaining. Franzen backhanded the puck into the Calgary zone from center ice, and it took an odd bounce right through Kiprusoff's legs.
The veteran goalie then made a great glove save with 16.6 seconds left, stopping a shot off the stick of defenseman Jakub Kindl to preserve the victory.
"Yeah, it felt good," Kiprusoff said. "Especially after I made it ... a little more interesting at the end there."
Howard had to be sharp early, and he stood his ground to turn aside a pair of shots by Matt Stajan.
It took the Red Wings until just after the five-minute mark for Valteri Filppula to record their first shot, which Kiprusoff easily turned aside. The Finnish goalie then stopped quality shots by Damian Brunner and Henrik Zetterberg before making a great save with his left pad to deny Joakim Andersson.
The Flames opened the scoring at 13:28 of the first when Stempniak swatted a rebound past Howard. Cory Sarich took the initial shot, and the puck bounced right to Stempniak, who was driving hard to the net.
Calgary outshot Detroit 10-8 in the first period before the Red Wings had an 11-2 edge in the second.
"We took the game over for much of the game from that point on," Red Wings coach Mike Babcock said. "Kipper was solid. We knew he was going to be good here tonight, but we weren't good enough. That's the bottom line. We didn't score enough."
The Red Wings scored the lone goal of the second period when Nyquist tapped a cross-crease pass from Andersson past Kiprusoff.
Stajan returned to Calgary's lineup after missing four games because of an upper-body injury. ... Flames rookie Sven Baertschi earned an assist on Stempniak's goal. He has two goals and two assists in his past three games. ... The Flames also beat the Red Wings 4-1 in Detroit on Feb. 5 and 5-2 at home on March 13. ... Franzen has scored goals in three straight games.