Ottawa rallied from a three-goal deficit to snap a two-game skid.
The Flames scored all their goals in the opening period. Rene Bourque tallied 23 seconds into the game, Curtis Glencross scored his 15th of the season on the power play and Chris Butler produced his first of the campaign and just his sixth in a 194-game career.
Ottawa cut its deficit to 3-2 in the second on goals from Nick Foligno and Zack Smith. Erik Karlsson tied it 4:28 into the third.
Alfredsson won it by sending a one-timer from the top of the left circle past Leland Irving.
Calgary fell to 2-1-1 on a seven-game road trip.
Reindeer recovered after escaping from Santa during lighting ceremony
'SNL': 'Anchorman 2' cast, One Direction sing 'Afternoon Delight' [VIDEO]