Defenseman Martin Marincin scored the game-winner with 4:52 left in the third period.
The Saddledome in late June sustained significant damage caused by record-setting floods throughout southern Alberta that forced more than 100,000 evacuations.
"It's just unbelievable to put this great rink back on its feet in so few weeks," Flames coach Bob Hartley told the team's website before the game. "It's just unbelievable. It allows us to be back in the saddle tonight and have fun."
Oilers goalie Jason LaBarbera played 31 minutes and stopped all 12 shots he faced.
"I live here during the summer so I got to see a lot of it," LaBarbera told the Oilers website. "Obviously, everyone saw the pictures of what it was like down here. They did a great job. It was pretty impressive for them to be able to turn it over as fast as they did. I know there was a lot of skepticism as far as if it was going to be ready in time for this game tonight."
Ryan Jones scored 3:47 into the first period, and David Perron, acquired from the St. Louis Blues this offseason, had a goal at 13:34 of the second to give Edmonton a 2-0 lead against Flames starter Joey MacDonald.
Calgary tied it 2-2 early in the third period on goals by Emilie Poirier at 2:43 and Mike Cammalleri at 6:31 against Richard Bachman. Poirier hit the post minutes prior to the goal by Marincin, scored on Joni Ortio.
The Flames' home opener is Oct. 6 against the Vancouver Canucks.
|PPG - Ryan Jones (1) Deflected shot - ASST: Jeff Petry (1), Taylor Fedun (1)|
1 - 0 EDM
|David Perron (1) Wrist shot - ASST: Taylor Fedun (2), Boyd Gordon (1)|
2 - 0 EDM
|Emile Poirier (1) Snap shot - ASST: Shane O'Brien (1), Ryan Culkin (1)|
2 - 1 EDM
|Mike Cammalleri (1) Wrist shot - ASST: Matt Stajan (1), TJ Brodie (1)|
2 - 2 Tie
|Martin Marincin (1) Wrist shot - ASST: Ryan Hamilton (1), Jordan Eberle (1)|
3 - 2 EDM
|Power Play %||17.7%||18.8%|
|% on Road||18.9%||19.0%|
|% at Home||16.5%||18.7%|
|Ryan Jones Hooking - 2 min against Mikael Backlund|
|Ryan Culkin Interference - 2 min against Will Acton|
|Ryan Jones Cross checking - 2 min against Emile Poirier|
|Patrick Sieloff Hooking - 2 min against Ryan Hamilton|
|Jeff Petry Boarding - 2 min against Curtis Glencross|
|Travis Ewanyk Fighting (maj) - 5 min against Blair Jones|
|Blair Jones Fighting (maj) - 5 min against Travis Ewanyk|
|John Ramage Holding - 2 min against Ryan Jones|
|Ty Bilcke Unsportsmanlike conduct - 2 min against Shane O'Brien|
|Shane O'Brien Unsportsmanlike conduct - 2 min against Ty Bilcke|