Anaheim, already owning a playoff spot and fighting to wrap up the Pacific Division title, lost its fourth in a row.
Calgary, which will miss the playoffs, has won back-to-back games.
Roman Horak gave the Flames the lead early in the second and Calgary's advantage grew to 2-0 when Brian McGrattan scored 3:14 into the third.
Kiprusoff did not allow a goal until Corey Perry scored his 14th of the season with 3:41 left in regulation. Roman Cervanka clinched it for the Flames by scoring into an empty net with 51 seconds remaining.
Kiprusoff finished with 32 saves while Jonas Hiller stopped 28-of-30 shots for the Ducks.