DETROIT -- The Detroit Red Wings needed a win in the worst way and two veteran stars delivered it.
Right winger Daniel Alfredsson's second goal of the game, with 3:57 left in overtime and on the power play, gave Detroit a 3-2 win over the Calgary Flames at the Joe Louis Arena on Thursday night.
The win snapped Detroit's six-game winless streak (0-4-2) and five-game home losing streak.
"We were hanging in, playing some good hockey, and then all of a sudden we're having some lapses where we give the other team way too many chances," Alfredsson said. "We did that some today, too, but overall we grinded."
Alfredsson also had an assist and was set up for the winner by center Pavel Datsyuk, who had three assists. Datsyuk threaded a cross-ice pass to Alfredsson, who rifled in a one-time slap shot from the inside edge of the left circle for his ninth goal of the season.
Datsyuk drew the penalty on defenseman T.J. Brodie, who hooked him as he tried to split the defense deep in the Calgary zone with 42 seconds left.
"You need your big guys, especially when you're short-handed, especially offensively for us because of the players we dressing. Our team competed," Red Wings coach Mike Bab cock said.
Detroit is without eight regulars due to injury.
Center Joakim Andersson also scored for Detroit, defenseman Niklas Kronwall added two assists and goaltender Jonas Gustavsson made 20 saves.
Center Mikael Backlund and defenseman Mark Giordano scored for Calgary. Center Mike Cammalleri had two assists and netminder Karri Ramo stopped 35 shots.
"They had a little desperation and hunger in their game down the stretch," Cammalleri said.
Calgary coach Bob Hartley disagreed with the penalty call on Brodie.
"I didn't think it was a call", Hartley said. "I thought it was a hockey play. It was stick to stick."
Alfredsson opened the scoring just 26 seconds into the game when he put in a loose puck from the slot.
Backlund tied it at 5:11 with his fifth goal. He flipped in the puck after it caromed off the end boards.
Andersson gave the Red Wings a 2-1 lead with 8:22 left in the second when Alfredsson's shot deflected in off his skate. It was Andersson's fifth goal. It was Alfredsson's 700th career assist.
Giordano's power-play goal tied it at 2 with 4:27 left in the middle period. He beat Gustavsson with a shot from the high slot just after a two-man Flames' advantage ended.
NOTES: Calgary C Mike Cammalleri returned after missing the previous game due to an illness. Cammalleri also played at the University of Michigan. ... Red Wings captain and C Henrik Zetterberg, who is on the long-term injured reserve due to a herniated disc, skated with his teammates Thursday morning for the first time since his last game, which was Dec. 4. ... Flames C Jiri Hudler is a former Red Wing. ... Detroit RW Jordin Tootoo was in the lineup after being recalled from Grand Rapids of the AHL. The veteran enforcer was sent down to the team earlier in the season.