DALLAS -- Kari Lehtonen made 33 saves to help the Dallas Stars defeat the Colorado Avalanche 3-2 at American Airlines Center on Thursday.
Lehtonen's effort came with a pair of dazzling stops on Avalanche center Nathan MacKinnon, who had a goal and assist for Colorado.
"He was definitely having a good night. And it's fun how [the battle] starts from nothing and a couple good saves and [then] he scores," Lehtonen said. "He's one of those players I have to be aware of every time he's on the ice. In the third period it seemed like he played every shift."
WATCH: All Avalanche vs. Stars highlights
MacKinnon had a breakaway turned away in the second period when Dallas still led 3-0, and Lehtonen made a sprawling glove save in the third period to preserve the win.
The Stars needed Lehtonen's performance after Colorado dominated the final two periods.
"I thought we played 20 minutes. Maybe a little more than that, until the shorthanded goal. Then I thought it was all them," Stars coach Lindy Ruff said. "I don't think we played well enough. Not even close to well enough. In fact, I thought it was embarrassing how we played."
Johnny Oduya gave Dallas a 1-0 lead at 8:15 of the first period when his slap shot deflected off Tyson Barrie's left knee and past Semyon Varlamov. It was Oduya's first goal since Dec. 17, 2015, against the Calgary Flames.
Brett Ritchie scored on the power play at 10:19 on a wrist shot from the slot to make it 2-0. Devin Shore and Jordie Benn had assists on Ritchie's fourth goal of the season.
Video: COL@DAL: Ritchie goes top shelf for power-play goal
Patrick Eaves scored his team-leading eighth goal of the season with 21 seconds left in the period. Tyler Seguin and Jason Spezza picked up assists on the power-play goal that made it 3-0 before the end of the first period.
MacKinnon scored shorthanded at 12:06 of the second period after a turnover at the blue line. Following the miscue, Benn and Dan Hamhuis got tangled up in their own zone and Avalanche forward Andreas Martinsen set up MacKinnon for his third goal of the season.
Mikhail Grigorenko scored at 1:51 of the third period on a deflection. MacKinnon had the assist after he took an initial point shot and A.J. Greer had the secondary assist for his first career NHL point.
Colorado outshot Dallas 30-16 in the final two periods.
"That's as hard as I've seen our team compete for that period of time all season long, 40 minutes," Avalanche coach Jared Bednar said. "We can look at that and say that's the new bar, that's the new bar for our team, the final 40 minutes, but it doesn't get us a win."
Varlamov made 20 saves.
Goal of the game
Eaves' goal late in the first period stood up as the game-winner. Tyler Seguin made the sharp pass to Eaves, who beat Varlamov with a wrist shot.
Video: COL@DAL: Eaves extends lead with power-play goal
Save of the game
Lehtonen was tested in the second period and made his toughest save on MacKinnon at 9:58. MacKinnon thought he scored on the breakaway, but Lehtonen was able to make the sprawling save with his left pad when MacKinnon didn't have enough space to elevate the puck.
Video: COL@DAL: Lehtonen sprawls to deny MacKinnon's break
Highlight of the game
Lehtonen saved the game when he knocked down MacKinnon's rebound chance at 10:11 of the third period. The rebound went back to MacKinnon, who kicked the puck to his stick and fired a wrist shot that Lehtonen caught when sliding to his left.
"I made the initial save and saw that it's going straight to their guy, and I didn't even know that was him. I'm just trying to reach and get as far as I can. It was definitely a good feeling to feel that puck hit my glove. [We] were the only two that knew the puck didn't go in and I had it, so that's a cool moment," Lehtonen said.
Video: COL@DAL: Lehtonen stretches for amazing glove save
Unsung moment of the game
Colorado got its final power play at 7:46 of the second period when Dallas still led 3-0. The Avalanche had an initial shot that looked like it would trickle through Lehtonen, but Stars defenseman Patrik Nemeth cleared the puck out of the crease.
They said it
"I didn't love his first period, just like the rest of our team, but he came hard in the last two periods. He was all around the net, he was hanging onto pucks and it wasn't fancy plays. He was driving his legs and using his legs and doing the right things, making the right decisions with the puck instead of just throwing it on net." -- Avalanche coach Jared Bednar on Nathan MacKinnon's play
"He's worked extremely hard at it. Going into the third period, I thought he was one of the best against MacKinnon. MacKinnon was eating up [Radek] Faksa, so I looked to [Eakin] to kind of dig in and win a couple. I thought all night he did a good job. He did a good job penalty killing. He's only going to get better." -- Stars coach Lindy Ruff on Cody Eakin's impact in the face-off circle
Need to know
Eakin made his season debut and won 15 of 23 faceoffs. He was injured on the first day of training camp and had knee surgery in September. … The Stars assigned defenseman Esa Lindell to the American Hockey League on Thursday. … Avalanche forwards Matt Duchene (head) and Gabriel Landeskog (lower body) missed the game because of injury.
Stars: Host the Edmonton Oilers on Saturday (7 p.m. ET; FS-SW, CITY, NHL.TV)
Avalanche: At the Minnesota Wild on Saturday (8 p.m. ET; FS-N+, ALT, NHL.TV)
Video: Early start leads Stars to 3-2 victory