Mike Webber fired a slapper that knocked off Michael Leighton's pad. Ennis swooped in from the right side and scored his second goal of the game.
Game 6 is Sunday in Buffalo.
The Sabres survived after blowing a 3-0 and chasing Flyers starting goalie Brian Boucher.
Leighton was flawless until overtime.
Thomas Vanek and Marc-Andre Gragnani also scored in the first period for the Sabres.
James van Riemsdyk, Andrej Meszaros, Danny Briere scored for the Flyers.
The Flyers, the No. 2 seed in the East, have no Jeff Carter, no Chris Pronger and are on their third goalie of the series. Their biggest problem could come Sunday where the Sabres are poised to send the defending Eastern Conference champions home for the offseason.
Ryan Miller made 36 saves for Buffalo.
Staked to the early lead, it seemed over for Flyers. Miller has 1-0 victories in the series and appeared to again stump the Flyers. Not for long.
After van Riemsdyk and Andrej Meszaros scored in the second, Briere stuck it to his former team when his backhander off a behind-the-net feed from Mike Richards tied it at 3.
The rally ended there.
Ennis pounded the winner past Leighton, who made only his second appearance for the Flyers this season.
BRUINS: The NHL fined Boston defenseman Andrew Ference $2,500 for making an obscene gesture to the crowd in Montreal.
Ference raised the middle finger of his left glove after his goal cut the Canadiens' lead to 3-2 midway through the second period on Thursday night. The Bruins won 5-4 in overtime to even the series at 2-2. Game 5 is in Boston tonight.
Ference said Friday he made the gesture while trying to pump his glove to celebrate the goal. He apologized about the way it looked.
"It wasn't meant to insult anybody, especially a whole row of cameras in the Bell Centre and the fans sitting there," Ference said.
Coach Claude Julien said he believes his player's explanation.
"My job is to support and believe your player and that's what I'm going to do," Julien said. "And I think he's a big boy. He's capable of handling himself and he's giving money to charity."
VEZINA TROPHY FINALISTS: Roberto Luongo, of the Vancouver Canucks; Pekka Rinne, of the Nashville Predators; and Tim Thomas, of the Boston Bruins; are the finalists for the NHL's Vezina Trophy for best goaltender.
The winner will be announced June 22 at the NHL awards ceremony in Las Vegas.