The line of Hemsky, Torres and Sykora was dangerous early on. Hemsky threw the puck to Torres in the slot and Kiprusoff came out to challenge and make a difficult save.
Six minutes in, Matthew Lombardi had a great chance for Calgary as he broke towards the Flames net. He managed to get a shot off and Roloson made a nice save but Lupul impeded his progress enough to be sent off for hooking.
On the ensuing power play, the Flames had a lot of puck possession but no finish with numerous chances to bury the puck behind Roloson. Shots on goal eight minutes into the game were 7-2 for the hosts.
After Jeff Friesen was sent off for slashing Jason Smith, the Oilers had a man advantage and didn't take long to get on the scoreboard.
Daniel Tjarnqvist teed up a blast from the high slot that rang off the post. Ryan Smyth
then jammed at the puck at the top of the crease before Joffrey Lupul swooped in and flicked it behind Kiprusoff.
Near the end of the period, Calgary responded to tie the game up. Friesen found the puck in the corner and fed it to Stephane Yelle in front, who tipped it past Roloson.
After 20 minutes, Jarome Iginla fired it on the Oilers net and Roloson took exception to the action. The result was some fireworks between the two sides, setting the stage for a hotly-contested second period.
After one, shots were 10-5 for the Flames.
Calgary almost took the lead on the power play two minutes into the second. Lombardi had a wide-open net but before he could get a handle on the puck, Matt Greene slid across and knocked it away. Seconds later, Dion Phaneuf hammered a shot from the point that caught Staios in the face.
With Tjarnqvist and Moreau in the box and Edmonton down two men as a result, Roloson made a nice glove save on Alex Tanguay as the Flames winger was perched to the right side of the Edmonton net.
Just as the Moreau penalty expired, Ryan Smyth
was sent off for hooking and the Flames went on the power play again.
After the Oilers weathered that storm, they were rewarded with a five-on-three of their own after penalties to Huselius and Lundmark at the same time. Edmonton threw out their five-man power play unit and put a lot of pressure on Calgary but could not score.
Iginla almost gave Calgary the lead late in the period when he had a wide open net from the top of the crease but his shot went off the crossbar.
In the final minute of period two, Calgary scored to take their first lead of the game. Nilson blasted the puck from the right circle and Tanguay fished the puck out of the corner before throwing it in front. Yelle chipped the puck over to Nilson, who was breaking toward the net. Nilson fired it in and made it 2-1 Flames.
After two periods, Calgary had a 22-13 shot advantage.
In the opening minute of period three, the Oilers almost tied the game but the puck went off Lupul's skate in front of Kiprusoff before the Flames goalie covered up.
Edmonton continued to pour on the pressure, outshooting Calgary 6-1 through the first seven minutes of the third. Their hard work eventually drew a penalty to Roman Hamrlik, putting the Oilers on the power play for a fifth time.
On the ensuing man advantage, the Oilers' attempts to get some shots to the net were thwarted by the Flames' shot blockers. Edmonton was able to get one shot through but not much else.
With six minutes left in the period, Torres absolutely bowled over Kiprusoff as he drove to the net. Kiprusoff wasn't injured on the high-speed collision but it caused the net to be dislodged and pushed right to the end boards.
With seconds ticking off the clock, Kiprusoff stopped Bergeron, Lupul and Horcoff on successive tries to preserve Calgary's victory.