Tyler Toffoli had a goal and an assist, and Milan Lucic and Dillon Dube also scored for the Flames, who had lost five straight. Jacob Markstrom had 23 saves for his ninth win in the opener of a rare two-game series between the clubs in San Jose.
Tomas Hertl had a goal and an assist, and Timo Meier also scored for the Sharks, who lost their second straight and fell to 3-6-3 in their last 12. Kaapo Kahkonen finished with 20 saves.
Jonathan Huberdeau, appearing in his 700th career game, made a nice cross-ice pass to Lindholm, who had a wide-open net for a power-play goal 16 seconds into the third to give the Flames a 3-1 lead. Less than 20 seconds later, Lindholm got a pass from Rasmus Andersson in the left circle and beat Kahkonen for his 11th of the season to give Calgary a three-goal lead.
''(Huberdeau) made a really nice pass to me, and to just stay out there and then (get the) second one right away,'' Lindholm said. ''Probably not gonna happen again, to score two goals that quick, but I'll take it.''
Dube made it 5-1 at 2:10 with his sixth before Hertl scored a power-play goal for his 11th at 7:56.
''We felt pretty good about the way the game was going,'' Sharks coach David Quinn said. ''The second period was a pretty even period and just in a blink of an eye it's 4-1.''
Toffoli got the Flames on the scoreboard first as he skated into the slot and fired a shot from between the circles that beat Kahkonen for his 11th at 7:13 of the first period.
Meier tied it nearly four minutes later with a one-timer on the power play in the first period. Erik Karlsson found Meier after a fake slap shot and pass for career point 700, becoming the first defenseman in the NHL to reach 40 points this season.
''I'm gonna have plenty of time by the time that I'm done with this game to reflect upon things this,'' Karlsson said. ''Right now I'm just living in the moment. I'm very fortunate to be in this league for a long time to get to where I'm at.''
Lucic put the Flames back ahead for good with a one-timer through traffic for his first of the season 6:01 into the second.
''It's obviously good to contribute offensively. But the main thing is getting a big win here to start off the road trip,'' Lucic said. It's a huge time of year for us. (It is a) huge road trip for us before the Christmas break starts.''
With 8:51 remaining in the second, Sharks forward Jonah Gadjovich and Flames defenseman Dennis Gilbert got into a fight. Both players traded haymakers, with Gilbert taking the worst of it after Gadjovich threw a right hook knocking Gilbert to the ice.
Huberdeau played in 671 games for the Florida Panthers before being traded to Calgary in the offseason. ... Karlsson became just the 27th defenseman in NHL history to reach the 700-point mark.
Flames: At San Jose on Tuesday night.
Sharks: Host Calgary on Tuesday night.
AP NHL: https://apnews.com/hub/NHL and https://twitter.com/AP-Sports
Copyright 2023 STATS LLC and Associated Press. Any commercial use or distribution without the express written consent of STATS LLC and Associated Press is strictly prohibited.