Sergei Belski-USA TODAY Sports

Walker Duehr scored one goal and assisted on Nazem Kadri's third-period game-winning marker as the host Calgary Flames kept their flickering playoff hopes alive with a 5-3 victory over the San Jose Sharks on Saturday.

Tyler Toffoli scored twice and Mackenzie Weegar added a single for the Flames (33-26-15, 81 points), who are four points out of the playoff spot with eight games remaining. Goaltender Jacob Markstrom made 28 saves.

Logan Couture, Nico Sturm and Martin Kaut replied for the last-place Sharks (19-39-15, 53 points), who are winless in nine games and have one victory in 15 outings. Goalie Kaapo Kahkonen stopped 25 shots.

San Jose's Erik Karlsson collected two assists and now has 90 points in his quest to become only the sixth defenseman to reach 100 points in a season and first since 1991-92.

With the score tied 3-3 in a back-and-forth affair, Kadri broke it open with his second goal in as many games and 23rd of the season at 5:45 of the final frame. Duehr created a couple of scoring chances that ended with Kadri's tap-in tally on a rebound.

Toffoli added an empty netter, his 31st of the season to match a career high, to round out the scoring in a game the Flames blew a 2-0 lead and then required a comeback.

Weegar opened the scoring at the 4:09 mark when he buried a top-corner shot for his fourth goal of the season, and Toffoli doubled the lead three minutes later when he buried a sharp-angled shot after a slick pass from Elias Lindholm.

The Sharks replied in a big way. Couture, whose team needed more than 10 minutes to record a shot on goal, made it a 2-1 game at 14:25 when Karlsson sent a pass that he buried as he slid into the cage for his 25th of the campaign.

Sturm equaled the score at 4:52 of the second period when he crashed to the net at the perfect time to redirect Noah Gregor's pass for his 14th of the season. Then Kaut tied the score 22 seconds later when he was on the spot after Steven Lorentz's shot rang off the post and deposited his third of the season into the open net.

But Duehr replied with a clutch goal 25 seconds after his team fell behind when he forced a turnover and then one-timed the pass from Trevor Lewis for his fifth of the season.

More must-reads:

TODAY'S BEST
Two young stars get hefty bonuses for making All-NBA teams
Mavericks star duo joins exclusive club with Game 1 win
Mavericks ride 'Luka Magic' on both ends late to win Game 1
Panthers shut out Rangers 3-0 in Eastern Conference Final opener
NBA announces 2023-24 All-NBA teams
Star Padres infielder to miss significant time with shoulder injury
LeBron James, Charles Barkley passionately defend Caitlin Clark from 'petty' haters
Roger Goodell discusses factors for possible 18-game NFL season
Cowboys QB Dak Prescott has intriguing comment on his contract situation
Celtics toying around with surprise Jayson Tatum move in conference finals
Former teammate warns Tee Higgins about pitfalls of playing on franchise tag
Watch: Timberwolves and Mavericks trade dunks in third quarter
Yankees owner Hal Steinbrenner tempers expectations for Juan Soto extension
Canucks' Rick Tocchet wins 2024 Jack Adams Award
Incredible Orioles streak finally comes to end against Cardinals
Raiders QB shares surprising reason for switching jersey number
New Jersey Devils to hire just-fired head coach to lead bench
Latest announcements show how deep Knicks' injury issues ran
Veteran WR announces retirement after nine seasons
Eagles stars defend new DC following criticism