Eichel scored on a power play to extend his point streak to six games and put the Sabres on the board later in the first period, but a James van Riemsdyk deflection restored the Flyers' lead at 15:13 in the second.
Casey Mittelstadt scored to bring Buffalo back within one before the second intermission, but a bad bounce off the stick of newly-acquired defenseman Brandon Montour in the offensive zone led to Travis Sanheim scoring the Flyers' fourth goal on a rush 46 seconds into the third.
Brian Elliott shut the Sabres down from that point on, stopping all 14 shots he faced in the final period of a 34-save effort, and Claude Giroux added an empty-net goal with 2:55 remaining. Carter Hutton stopped 40 shots for the Sabres.
"I think it's just disappointing because it's a game of mistakes and right now we're making more mistakes than the other team," Sabres coach Phil Housley said. "I still like the fight in our group though, sticking together and fighting until the end, but you can't be chasing or trading chances with teams. That's not our game."
Housley called for better communication at the net front, where the Flyers earned the first three of their goals. In each instance, the player who scored was unchecked.
"It's just about taking your guy," Housley said. "'Take him, I got him.' Just bring clarity to the situation. We've got too many guys standing around in front of our net, whacking at pucks. That's just about picking up and being tougher to play against in that area."
The Sabres fell behind the Flyers in the standings with the loss, eight points out of a playoff spot.
"This was an important game for us, but we're going to stick together in here," Mittelstadt said. "I mean, what a group of guys we got. It's pretty special. We're going to stick together here and we're going to keep fighting no matter what happens.
"It definitely doesn't feel good, but we're always going to stick together, for sure."