Leading 1-0 after the first period, the Flames increased the lead to two goals at 3:38 of the second. Mikael Backlund’s shot missed the net but the puck caromed sharply off the end boards and out the other side. Giordano one-timed it in as Alex Stalock scrambled across.
Lee Stempniak, rookie Sean Monahan also scored for Calgary and Jiri Hudler added an empty-net goal.
Eriah Hayes scored his first NHL goal for San Jose.
The Sharks have lost three straight and scored only one goal in the skid.
San Jose was held to eight shots in the first period but racked up 13 in the second, including multiple chances to score on Ramo.
The Sharks finally got on the scoreboard 46 seconds into the third.
That goal ended a stretch of 160 minute, 36 second scoreless drought for the Sharks, who racked up 103 shots on goal before Hayes connected.
The Flames restored their two-goal cushion after Ladislav Smid’s shot went wide and bounced out the other side for Joe Colborne, who directed it in front for Monahan. The rookie redirected it out of the air for his team-leading 15th goal.
Stalock, who had only surrendered one goal on 65 shots in his previous three starts, got the nod in net for the Sharks, and finished with 26 stops.
Ramo got the start for the Flames for the fifth time in six games.
Calgary opened the scoring at 8:41 of the first period on a nice rush by Backlund. Darting down the wing, he got around Matt Irwin to get a shot on goal. Stalock stopped that one but Stempniak was right there to poke in the rebound.
NOTES: Calgary LW Mike Cammalleri (concussion) missed his ninth game. He is back practicing with the team and hopes to play Saturday against Minnesota ... Tyler Kennedy (lower body) did not play for San Jose. He was hurt Wednesday night in Edmonton ... Calgary is 16-9-7 in one-goal games and now 4-18 in games decided by two-or-more goals ... Since being converted to a forward, San Jose’s Brent Burns has 49 points (23 goals, 26 assists) in 66 games.