Sven Baertschi notched a goal and an assist while Mikael Backlund, Dennis Wideman and Maxwell Reinhart each scored as the Flames won for the third time in four games.
The Oilers, meanwhile, tumbled to their fifth straight loss, falling six points out of the eighth and final Western Conference post-season slot with seven games to play.
Lennart Petrell scored and Nikolai Khabibulin made 34 saves in Edmonton's defeat.
Millions of Getty images now available for free via embed tool
Boston schools pull out free condoms over wrapping complaints