Pat Maroon, Tyler Pitlick, Zack Kassian, Jesse Puljujarvi (his first NHL goal) and Jordan Eberle scored for Edmonton. Goaltender Cam Talbot made 37 saves.
Alex Chiasson, Troy Brouwer, Michael Frolik and Dennis Wideman scored for Calgary. Elliott made 21 saves in his first game with the Flames.
"It was kind of one of those nights where everything that could go wrong, did go wrong," Elliott said. "That's not the way you want to start the season. The good thing is we have these guys back at home Friday] and we'll get back to the drawing board."
Maroon scored the first goal in the Oilers' new arena on their first shot at 1:10 of the first period, tipping the puck past Elliott. Chiasson tied the game 1-1 at 1:46. Pitlick put Edmonton up 2-1 on their second shot, beating Elliott from the right face-off circle on a 2-on-1 at 5:34.
[Video: CGY@EDM: Maroon deflects Draisaitl's shot in for goal
Kassian scored on a breakaway at 15:12 to give the Oilers a 3-1 lead.
"The anticipation for this game was huge and the fans were excited and all the greats [Wayne Gretzky, Mark Messier, Jari Kurri, Paul Coffey, Grant Fuhr] were in the building," McDavid said. "It was an exciting night for our whole organization and it was a good way to start it. I'm kind of happy it's over. I'll definitely take a lot of good memories from tonight and move on with those. But it's over [and] we can kind of get back to the day-to-day routine."
Calgary tied the game in the second period with two shorthanded goals on consecutive Edmonton power plays. Brouwer scored at 8:26 and Frolik tied the game 3-3 at 10:51.
McDavid restored Edmonton's lead and then scored on a penalty shot after being hooked by Wideman on a breakaway.
"I actually thought it should have been a penalty shot, [the referee] made the right call," McDavid said. "When you have a clear-cut breakaway like that and you get it knocked off your stick, it should be a penalty shot every time. It was a good call."
Puljujarvi scored on a power play at 9:00 of the third period to give Edmonton a 6-3 lead. Wideman scored on the power play at 11:29 to make it 6-4.
Eberle scored into an empty net at 18:38.
"I didn't think we were direct enough. We didn't execute our game plan," Flames coach Glen Gulutzan said. "There were lots of turnovers, which feeds their attack, which is high-end. They like a lot of chances off the rush and a lot of them we fed them. We need to clean that up."