Ryan Miller made 35 saves and Alexander Edler scored in the first period for Vancouver (26-27-6), which moved within four points of the Flames for the second wild card into the Stanley Cup Playoffs from the Western Conference.
"We found a way to get the win," Miller said. "We had to battle for it. It took everybody."
Mark Giordano tied the game with 5.6 seconds left to give Calgary (29-26-4) a point.
"There are no moral victories. We need points, and the fact we were able to squeeze a point out with five seconds left is obviously a huge plus," Flames forward Troy Brouwer said. "At this point in the season, you take points wherever you can get them."
Elliott made 17 saves, beaten by Edler's dipping slap shot from just beyond center ice on Vancouver's first shot with 7:16 left in the first period, and the last one from Tanev.
"We always talk about in overtime you've got to make that one big save to go the other way, and it didn't happen," Elliott said. "That's frustrating personally, but we did get that point and we were seconds away from not getting anything, so take the positive."
The Flames outshot Vancouver 18-2 in the third period, finally tying it with Elliott on the bench for an extra attacker. Giordano sent the puck towards the net from the left boards above the faceoff circle, and it beat a screened Miller to the far side.
"You get that far and you do get frustrated about handing a point back," Miller said. "We stepped up in overtime and got it done. Right now we needed the win."