"You can't give up games like this," Sakic said. "The good thing for us is that from here on out most of our games are divisional games and teams we have to catch and we have to beat those teams. Games like this, though, you can't afford to lose these."
Colorado has lost six of seven and is four points out of the eighth playoff spot in the West. Edmonton is seven more points back.
Sam Gagner and Curtis Glencross also scored for Edmonton. Tyler Arnason and Ben Guite scored for Colorado, which activated Sakic from the injured reserve list after he missed 38 games because of a hernia operation on Dec. 28. It was the longest absence of his career.
"Actually it wasn't too bad," he said. "A little rusty in the first period but I kind of expected that. But as the game went I started to feel more and more comfortable."
The Avalanche took an early 1-0 lead just 27 seconds into the first period when Arnason was allowed a couple cracks at the puck from the side of the net, somehow managing to squeeze it under the pads of Oilers starter Mathieu Garon.
Colorado extended its lead to two goals with seven minutes remaining after Sakic fed a pass from behind the goal line to Guite, who chipped a shot through Garon's legs.
Edmonton had a good chance to get into the game in the period's final two minutes, with a flurry of shots in tight, but Avalanche goaltender Jose Theodore was able to keep the Oilers off the board.
"We could have faded away and let the game drift away but we came up with two big goals in the second," Cogliano said. "We just battled back. We felt that we weren't getting outplayed too much in the first period. We just weren't burying our chances and they had some bounces."
About five minutes into the second, Gagner picked up a rebound of Ales Hemsky's shot and deposited it into the open net. It was the ninth consecutive game Gagner, a rookie, has had at least a point and the longest such streak by anyone on the Oilers this season.
Edmonton took the lead 7½ minutes into the third as Cogliano elected to shoot on a 2-on-1 with Gagner, picking the far left corner to make it 3-2.
"In the second period we got away from it, we weren't good at all," coach Joel Quenneville said. "We didn't generate anything, didn't have the puck at all and we turned it over in some tough areas. You can't play like that, that was the game."
Colorado nearly tied it up on a late power play with a chance at a wide-open net, but Oilers captain Ethan Moreau dived to knock the puck away at the last second to preserve the win.
The oft-injured forward could be out again after hurting his leg when he awkwardly ran into the boards as the clock ran out.
"He's not good," Edmonton coach Craig MacTavish said. "He's in a lot of pain right now. It looks really bad right now."
- With their captain coming back in, the Avalanche reassigned forward T.J. Hensick to the Lake Erie Monsters of the AHL.
- Colorado's leading scorer, Paul Stastny, also returned from a month-long absence due to injury on Friday.
- Although his point streak is still active, Gagner had his streak of consecutive assists stopped at eight games, an Oilers rookie record. Wayne Gretzky had an eight-game assist streak in his first season but wasn't considered a rookie because he had played in the old WHA.
- Before the game the Oilers honored 40 local hockey players who recently broke the Guinness world record for longest hockey game, playing 241 hours.