Antti Niemi stopped 16 of 19 shots to record his 11th career won over the Flames, his most against any team.
Karri Ramo, making his first start since the season opener, made 30 saves.
Burns gave the Sharks, who are 8-2-1 against Calgary in their past 11 meetings, the early lead with an easy tap from in front of the net. Pavelski beat Kris Russell to a puck in the corner and fed a wide-open Burns less than a minute into the contest.
Hannan made it 2-0 in the final minute of the first period with a long shot.
Monahan put the Flames on the board with a power-play goal early in the second period. Sven Baertschi fed him the puck from behind the net, making it easy to beat Niemi.