DENVER -- David Moss picked a great time to get his first goal of the season.
"I'll take it," said Moss, who also had an assist. "It's huge just to get back on the winning track."
Curtis Glencross scored twice, Mikael Backlund also scored and Miikka Kiprusoff had 29 saves for the Flames. Rene Bourque and Niklas Hagman had two assists each.
"It's pretty nice to get the win," Kiprusoff said. "It's a nice comeback for us."
It was Hagman's hard work that led to the winner and helped the Flames complete their comeback.
With time running out in regulation, the Flames turned up the pressure in Colorado's end and finally got the deciding tally. Hagman dug the puck out from the corner and crashed the net. Avalanche goalie Peter Budaj made the initial save, but the puck squirted over to Moss, who knocked in to make it 3-2.
"I had it right there," said Budaj, who had 20 saves. "They kept whacking at it and it went in."
Glencross made it 4-2 with an empty-net goal with 33 seconds remaining, his fifth of the year.
"It was nice to see some go in," Moss said. "We had some chances that didn't go in and some ugly ones that did. You take them any way you can get them."
The game may not be the biggest loss for the Avalanche, who had two more players go down to injury in the second period. Forward David Van Der Gulik tore the ACL in his left knee and later in the frame forward T.J. Galiardi broke his wrist.
The duo joins David Jones (hand injury), Peter Mueller (concussion) and Adam Foote (head injury) on the injured list.
"Our injuries are starting to pile up," Avalanche coach Joe Sacco said.
Despite being down two forwards in the third period Colorado was poised to hand Calgary its fourth one-goal loss in five games when Chris Stewart scored his 10th goal early in the third period.
The game was tied 1-all when the Avalanche went on a 5-on-3 power play 20 seconds into the third period. Colorado kept the puck in the Calgary zone and cashed in when Stewart picked up Milan Hejduk's rebound and calmly lifted it over a sprawled Kiprusoff to make it 2-1.
"You've lost four in a row and you're playing against a team in a tough building and you're in the mindset that you really have to dig in," Calgary coach Brent Sutter said. "Then you end up being down a goal in the last 11 minutes of the game and you stay with it."
Moments after Hagman was stopped on a chance, Backlund tied it on his third goal of the season with a shot from the left circle 9:03 into the third.
"They were desperate when they were down 2-1," Sacco said. "It came down to some one-on-one battles. You can draw up x's and o's, but that is what the game comes down to."
The Avalanche scored first when they capitalized on an early power-play opportunity. With time running out on the man advantage, Jonas Holos' pass to the front of the net deflected off the stick and skate of Yip just 3:13 into the first period. Yip's fourth goal of the year stood after a review.
The Flames got the equalizer on the power play when Glencross scored 36 seconds into the second period.
"It wasn't a great start for us," Sutter said. "We stood around and let them come to us. Then we got going and played good."
Stewart's goal was the 100th point of his career. He has 51 goals and 49 assists in 144 career games. ... Flames D Jay Bouwmeester has the longest active consecutive games played streak (438) in the NHL. ... Calgary's first goal ended Budaj's shutout streak at 96:33.