"We found a way to get a spark in the third," Avalanche coach Jared Bednar said. "We played a real good period to win the game. We stuck with it. We didn't have a great start, but to be able to stick with it and have faith to keep playing our game and execute the game plan we were able to create enough chances to win the hockey game."
Nathan MacKinnon had a goal and an assist, Logan O'Connor scored his first NHL goal, and Philipp Grubauer made 19 saves for the Avalanche (14-8-2), who had lost two in a row.
[WATCH: All Oilers vs. Avalanche highlights]
Jujhar Khaira scored, and Mikko Koskinen made 46 saves for the Oilers (16-8-3), who went 3-2-0 on a five-game road trip.
"Other than the goaltender and the [5-for-5] penalty killing, to play like we did was unacceptable," Edmonton coach Dave Tippett said. "We didn't play hard enough, and we didn't play smart enough."
Oilers center Connor McDavid had his 11-game point streak end. He had 24 points (12 goals, 12 assists) in the run.
"They had lots of jump," McDavid said. "We were on the penalty kill for [9:54], it's tough to build that momentum."
Said MacKinnon: "He's such a tough competitor to defend and we kept him off the scoresheet."
Colorado went ahead 2-1 at 3:05 of the third period when Matt Nieto skated down the left wing and converted MacKinnon's pass on a 2-on-1.
Video: EDM@COL: Nieto finishes a 2-on-1 break with MacKinnon
"That was huge," Nieto said. "In-between periods after the second, we came in here and just talked about how if we just stay on their [defense] and continue to forecheck hard, then the chances are going to come. That was just a great example of the team sticking with it."
Nieto moved to the top line with MacKinnon after Andre Burakovsky sustained an upper-body injury in the second period. Bednar didn't have an update.
"He had a good game, especially in the third period," Bednar said of Nieto. "He's a trusted guy for me. He hasn't had a great month, but generally when you give him a real good assignment, he's a guy that elevates his game. He's a guy that can skate with MacKinnon. I like his pace to his game."
MacKinnon made it 3-1 at 4:07. Ian Cole shot from the right point off Koskinen's glove and MacKinnon put the rebound between defenseman Caleb Jones' legs.
O'Connor increased the lead to 4-1 at 5:37. Valeri Nichushkin sent a pass from the left corner to O'Connor for a backhand in the slot.
Video: EDM@COL: O'Connor lifts backhanded shot past Koskinen
"That's a great feeling," O'Connor said. "I mean, that's something you sort of dream of your whole life, so to have that happen tonight and get the win on top of that, it was definitely nice."
Khaira gave the Oilers a 1-0 lead at 13:17 on a wraparound after skating from the right corner.
Nazem Kadri tied it 1-1 at 10:50 of the second period, scoring short side from the right wing.
Video: EDM@COL: Kadri fires puck by Koskinen's glove
Oilers defenseman Adam Larsson was assessed a five-minute elbowing penalty and game misconduct for his hit against T.J. Tynan at 2:45 of the second period. Edmonton killed the penalty, which included a 5-on-3 for 1:55 when Leon Draisaitl tripped Cale Makar at 5:40.
"We killed that penalty, get a good kill, kill a two-minute 5-on-3 and you think we get momentum and play smart, and we gave a game away," Tippett said.
The Oilers lost defenseman Kris Russell to an undisclosed injury for most of the second period, though he returned in the third.
"Remember, they lost two [defensemen] halfway through the game, so they're running four," Bednar said. "I think our guys kind of smelled a little blood in the water and we started to put a lot of pressure on them."
Video: EDM@COL: Khaira flips backhander past Grubauer
They said it
"There's no excuses. [Koskinen] played an unbelievable game and held us in the whole way through and we let him down in the third period. It's as simple as that." -- Oilers defenseman Darnell Nurse
"We just need to keep weathering the storm until we get healthy. We know we're a heck of a team, we started the season 7-0 for a reason. We have to play a little more defensively and patient, I think." -- Avalanche forward Nathan MacKinnon
Need to know
Edmonton forward Alex Chiasson didn't return after a hit by Colorado defenseman Ryan Graves at 2:39 of the second period. "I think he's in concussion protocol," Tippett said. … MacKinnon has 13 points (six goals, seven assists) in his past seven games. … Colorado defenseman Calle Rosen had an assist in his season debut. … Avalanche forward Joonas Donskoi had two assists.
Oilers: Host the Vancouver Canucks on Saturday (10 p.m. ET; CBC, SN360, SNE, SNO, SNP, NHL.TV)
Avalanche: At the Chicago Blackhawks on Friday (4 p.m. ET; NBCSCH, ALT, NHL.TV)
Video: MacKinnon leads Avalanche to 4-1 win over the Oilers