Linus Ullmark made 25 saves for the Sabres (18-17-7), who ended a four-game losing streak.
"I think we just stuck with the game plan," said Buffalo forward Curtis Lazar, who scored in the first period. "You never want to get down two goals at home but we rallied. As a team we're trying to make a push. It's that time of year, and tonight was a good start."
Riley Sheahan and Ryan Nugent-Hopkins scored, and Mike Smith made 21 saves for the Oilers (21-17-5).
"I liked [that] we played a strong first period, but I knew we were going to have to raise our level after that. We just didn't," Edmonton coach Dave Tippett said. "The game just kind of went along and we didn't grab it. We gave up two goals where we got out-competed in front of our net. And you get yourself to overtime and anything can happen."
Sheahan gave the Oilers a 1-0 lead, jumping on a deflected puck by Josh Archibald at the left side of the net at 5:06 of the first period.
Nugent-Hopkins made it 2-0 at 7:00 when he connected on a rebound in the low slot.