CALGARY — In a duel of struggling goaltenders, one returned to vintage form, while the misery continued for the other.

Carey Price backstopped the Montreal Canadiens to a 3-2 win over Mike Smith and the Calgary Flames on Thursday night, despite the visitors being outshot 45-22.

"He's the best goalie in the world," said Artturi Lehkonen, who scored the game-winner in the third period. "He was outstanding in the net. He was a big key as to why we won."

Lehkonen's first goal in 18 games, dating back to the season-opener, came on a harmless-looking 40-foot wrist shot from off the wing that leaked through Smith's pads.

"Bad goal, bad timing," said Smith, who fell to 5-7-1.

Smith's save percentage dropped to .876 on the season, which ranks 49th out of 50 goaltenders who have played six-or-more games.

"When you feel like you've let your team down, that's probably the biggest frustration/disappointment that can ever happen in your career," said the 36-year-old. "Our team played such a great game tonight and deserved a much better fate. When something happens like that and it's on you, it's obviously disappointing."

It has been a tough year for Price, too, who entered the night with an .892 save percentage. Price found himself on the bench the last two games after giving up 11 goals on 63 shots in his previous two starts.

But he was back in form against Calgary.

"Just trying to stop the puck and try to read plays well and let them hit you when they come," said Price, who improved to 6-4-3.

Price stopped all thirteen shots he faced in the final frame as the Canadiens won for the third time when trailing after two periods.

"He's got his reputation as Carey Price, the best goalie in the world, for a reason and we have that confidence playing in front of him and I don't think anyone was ever worried," said Canadiens forward Brendan Gallagher.

Tomas Tatar and Jonathan Drouin also scored for Montreal (10-6-3), which has split the opening two games of its three-game Western Canada road trip. The Canadiens play in Vancouver on Saturday.

Max Domi had an assist for the Canadiens to extend his point streak to eight games (5-7-12).

Matthew Tkachuk scored both goals for Calgary (10-8-1). Tkachuk's eighth and ninth markers of the season put him at a team-best 21 points on the season. Mark Giordano had two assists. The Flames' four-game homestand continues Saturday when they are host to the Edmonton Oilers.

"Very, very tough," said Tkachuk, about the setback. "It's one of those where you don't want a third period like that, especially when you're up 2-1 in your building."

Montreal tied the game 2-2 at 8:32 of the third. After a scramble in front of the net, Smith kicked out his pad to stop Andrew Shaw's backhander, but Drouin was right there to slide in the rebound.

"Carey stood tall in net and gave us a chance after two periods to still be in the game," said Canadiens coach Claude Julien. "I liked the way we came out in the third. Finally we talked about it, starting to play on our toes again like we had been when things are going well."

The Canadiens opened the scoring eight minutes into the first on another shaky one as Tatar's shot from the slot deflected off Smith's upper body and went into the net.

"We all have bad days at work sometimes," said Flames defenceman Travis Hamonic, when asked about his goaltender. "We battle as a team. We win and lose as a team. It's never on one player."

Coming on the fifth shot Smith faced, it was the 10th time in 13 starts that he has surrendered a goal on one of the first six shots.

Notes: Flames forward Dillon Dube (upper body) is back practicing and is nearing a return. He has missed four games. Canadiens defenceman David Schlemko played in his 400th NHL game.