Anaheim has won five in a row after suffering a loss in its season opener. Calgary lost in regulation for the first time this year, its other two setbacks having come in overtime.
Selanne scored with 3:25 to go in the middle period after Anaheim's Dustin Penner and Kyle Palmieri had produced the first two goals of the game.
A shorthanded goal by Lee Stempniak cut the Calgary deficit to 2-1 late in the first period and Jeri Hudler again brought the Flames within one 4:15 into the third.
Viktor Fasth then shut the door for Anaheim, finishing with 33 saves to win for the second time in three starts.
Joey MacDonald took the loss, giving up the three goals on 22 shots. Calgary had won its previous two outings.