The Southeast Division-leading Panthers snapped a three-game losing streak and handed the Flames their third straight setback.
Sean Bergenheim scored both of Florida's regulation goals and forced overtime when he put a wrist shot past Leland Irving with 4:35 to play in the third. Irving made his first NHL start Friday and stopped 38 shots.
Alex Tanguay gave the Flames an advantage in the shootout by scoring in the first round, but Dmitry Kulikov kept things going for Florida by beating Irving in the third round.
After Weiss scored in the fourth round, Jose Theodore stopped Calgary's Lee Stempniak to secure the victory.
Theodore made 24 saves.