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.