Sam Bennett and Ryan Lomberg put the Flames out front midway through the opening period, but the Oilers went on a five-goal tear the rest of the way to take a 6-2 decision on Friday at Rogers Place.
David Rittich played the first 30 minutes and change before being replaced by Jon Gillies, who was tagged with the loss after allowing five goals on 21 shots.
With the loss, the Flames' pre-season record drops to 2-2-0.
"Now, it becomes a much more defined picture of what we have and what we don't have," said head coach Bill Peters.
"Who's left, actually battling for spots, it's becoming clear."
The strapping fourth line of Lomberg, Zac Rinaldo and Glenn Gawdin was one of the Flames' most effective, laying the body, hemming the Oilers in their own end for long stretches, and using their speed to create chances off the rush.
Andrew Mangiapane looked like hasn't missed a beat, despite a late arrival at training camp.
Mark Jankowski came up with a huge blocked shot - with the game in the balance - early in the third period.
There was plenty of good in the first half.
And plenty of info, overall.
"I thought we had a pretty good start," Bennett said. "We were getting pucks deep and battling down low.
"We kind of got away from that in the second and third - started turning pucks over and were a playing a little too loose. We can learn from that and move on."
The Oilers drew first blood at 2:45 of the opening frame, as Adam Larsson had all kinds of time at the far point, delivering a pass into the high slot that was tipped home by former Flame Alex Chiasson.
But the Flames got it back before the 10-minute mark of the period, with Bennett collecting his first of the pre-season off a terrific solo effort by Michael Stone. Stone carried it through the middle and across the line, splitting the D at the far circle before putting a hard shot into the pillows of Oilers goalie Mikko Koskinen. Bennett, driving hard on the opposite side, was Johnny on the Spot, banging home the rebound to even the score, 1-1.
The Flames opened up a 2-1 lead at 13:30, as a pair of tough guys hooked up for a beauty off the rush. Rinaldo showed great speed down the right side, creating a 2-on-1 with only a forward back for the homeside. Rinaldo filtered a pass under the defender's flailing cue and Lomberg did the rest, roofing it short-side on the goaltender.
"That's part of creating energy," said Rinaldo, who finished with 12:20 in ice time and was the architect of another 2-on-1 late in the middle frame. "A lot of people think it just comes from physical play, or a fight. But energy can also come from your work ethic, your speed and your tenacity, and showing your teammates that I can bring that, so they can feed off that. There weren't many hits out there for me tonight, so I channelled my energy by showcasing my speed, in both the forecheck and backcheck.
"That created opportunities for me and my linemates."
Here are the forward line combinations and D pairs the Flames used at the start of the contest:
Sam Bennett - Mikael Backlund - Michael Frolik Andrew Mangiapane - Mark Jankowski - Elias Lindholm Dillon Dube - Alan Quine - Devante Smith-Pelly Ryan Lomberg - Glenn Gawdin - Zac Rinaldo
Noah Hanifin - Travis Hamonic Oliver Kylington - Michael Stone Brandon Davidson - Alexander Yelesin
David Rittich Jon Gillies
To get all the Flames stats and see who the Oilers dressed, click here.
The Flames continue the road portion of their pre-season schedule as they travel to Winnipeg to face the Jets on Sunday (6 p.m. MT, live-streamed on CalgaryFlames.com and the Flames Facebook page). They return to the Scotiabank Saddledome on Tuesday to conclude a home-and-home set with their Central Division counterparts, before hitting the road again on Thursday to face the San Jose Sharks for their penultimate, pre-season contest.
The exhibition slate wraps up on Saturday as the Flames host the Oilers.