Mike Cammalleri scored the only goal in the shootout for Calgary.
Cammalleri moved in from the right wing and went short side on Alex Stalock, setting off a roar from the Saddledome crowd.
Karri Ramo, who finished with 33 saves, stopped Patrick Marleau, Joe Pavelski and James Sheppard for the win.
Joe Colborne scored in regulation for Calgary. The Flames have won 10 of their past 13 on home ice.
It was also Calgary’s league-leading 43rd one-goal game. They are two away from the club record of 45 set in 2005-06.
Sheppard scored in regulation for San Jose, which had its four-game road winning streak end.
San Jose increased its lead atop the Pacific Division to two points over Anaheim. The Ducks have two games in hand.