Leason, who is from Calgary, put Anaheim up 2-1 at 11:33 on a rebound after Markstrom made the initial save on Comtois' shot from below the right face-off circle.
Gibson made 15 saves in the third period, including a windmill glove stop on Tyler Toffoli at 13:37 to preserve the lead.
"To me, he's probably a top-five, top-three goalie in the League," Comtois said. "He's always coming up with those big saves and keeping us in it. Even when we play really good teams and teams like today fighting for their lives in a playoff spot, they throw everything at him, and he just comes up with the saves. It's so easy for him."
Derek Grant scored an empty-net goal with two seconds left for the 3-1 final.
"I'm so frustrated," Flames defenseman Rasmus Andersson said. "We didn't score. Honestly, that's the easy way to say it. We just didn't score today. We had a lot of looks, especially in the third. We're dominating the game in the third. We just can't get that tying goal or the leading goal. It's frustrating. I don't know. It [stinks]."
NOTES: Calgary had an eight-game point streak against Anaheim (7-0-1) dating to Oct. 20, 2019, its longest against one opponent. … The Ducks are 8-0-1 when leading after the second period; the Flames are 0-16-3 when trailing after two. ... Anaheim forward Trevor Zegras had a four-game point streak end (two goals, three assists). … Ducks defenseman Simon Benoit was plus-3 and had an assist in 23:07 of ice time. … Backlund's goal was Calgary's first on the power play in six games (0-for-12). … Vatrano's goal ended Markstom's shutout streak at 98:35.