Macklin Celebrini scored for the Sharks (11-22-6), and Yaroslav Askarov made 30 saves. San Jose has lost seven straight and is 1-9-1 in its past 11 games.
"[We] just couldn't get into the game early in the first," Sharks coach Ryan Warsofsky said. "[Our] puck play, [we were] soft in front of our net, and then we got to going there in the third, but it's too late."
Huberdeau put the Flames up 1-0 at 4:40 of the first period by deflecting MacKenzie Weegar's slap shot from the right point.
Celebrini tied the game 1-1 for the Sharks at 3:04 of the second period with a power-play goal. Alexander Wennberg made a pass from the left wing across the ice to Celebrini for a one-timer into an open net.
"Trailing at the start of the game, it's not easy," Celebrini said. "I thought overall, we did a lot of really good things, and we had a lot of chances that could have gone in on a different night."