The visiting Ducks scored three times in the third period to beat the Flames 5-3 at the Scotiabank Saddledome Tuesday night.
The game was knotted at two heading in the final frame, but the Ducks scored two straight before Andrei Kuzmenko answered to make it a one-goal game again, but then Alex Killorn scored his second of the stanza to round out the scoring.
Kuzmenko finished the night with a pair of goals, while Yegor Sharangovich had the other Calgary tally. Jacob Markstrom got the start in net and finished with 24 saves.
Nazem Kadri and Martin Pospisil both had two-assist nights.
The Flames had a 5-0 lead in shots early in the first period but finished with just six in the frame, while the Ducks piled 13 on the cage in the last 15 minutes.
Mason McTavish opened the scoring at 14:03, fighting for position atop the blue paint and tipping home a point shot from Olen Zellweger.
McTavish went looking for his second with time winding down in the first, stepping into a one-timer off a 2-on-1, cross-ice pass from Ryan Strome, but Markstrom launched across the crease to get there before the puck.
There was significantly more action in the second as the Flames outshot the visitors 12-5 and were rewarded for the increased production.
Calgary went to the powerplay 2:25 in and just five seconds into the advantage, they got on the board when Sharangovich made a stealthy tip in traffic on a Kadri shot past Lukas Dostal, many in the the crowd thinking No. 91 had scored till the official call was made on the PA.