Iginla's empty-net goal with 1:09 to play put the Flames ahead 7-4, but the Hurricanes weren't finished and added two goals in the final minute.
Cam Ward allowed six goals on 32 shots.
Carolina trailed 3-0 after Morrison's first goal 42 seconds into the second period.
Eric Staal scored twice and added an assist for the Hurricanes, who have lost six in a row.
Jiri Tlusty added a goal on a penalty shot after being tripped on a breakaway by T.J. Brodie in the second period.