The Flames held the edge through the scoreless first period, outshooting the Lightning 8-6.
The homeside found its groove in the back half of the frame, coming close on a pair of opportunities from former Tampa Bay forward Blake Coleman.
The Texan proved tough to contain in the low slot, forcing Lightning goalie Andrei Vasilevskiy into a pair of reaction saves including off a one-timer with four-and-a-half minutes left.
Coleman parked himself on the doorstep, while linemate Zary went to work below the goalline; he slickly zipped the puck to Coleman's tape, with Vasilevskiy's pad the only thing preventing Calgary from claiming a 1-0 lead.
Tampa Bay defenceman Mikhail Sergachev made arguably the best defensive play of the opening 20 minutes, deftly stick-checking Nazem Kadri after the Calgary forward caught up to an aerial pass for a partial breakaway opportunity.
At the other end of the rink, Vladar was the less busy of the two keepers in the first period, but produced a five-alarm save of his own when Sergachev’s point shot bounced its way to Brayden Point at the left post.
Vladar quickly padded away Point’s - cough - point-blank opportunity, then smothered the rebound to prevent any further danger.
All that hard work paid off for the Flames early in the middle stanza.
Greer broke the deadlock 2:30 into the period with a quick wrist shot from the right circle that buzzed past Vasilevskiy’s glove.
The Flames winger strode down the wing after an entry pass from Rasmus Andersson, scoring his fifth goal of the season to put Calgary in front.