Jimmy Vesey had a goal and an assist, and Jeff Skinner, Casey Mittelstadt and Victor Olofsson scored for the Sabres (12-10-4). Linus Ullmark made 25 saves for Buffalo, which had lost five straight games to Toronto (0-4-1).
"It's always fun to win on home ice, and we hadn't beat them in a while, so it's good to get the two points, and I think we needed it as a group as well," said Eichel, who extended his point streak to eight games (eight goals, seven assists). "Good contributions up and down the lineup starting with our goaltender, who I thought played tremendous."
WATCH: [All Maple Leafs vs. Sabres highlights]
John Tavares had two goals, and Dmytro Timashov and Kasperi Kapanen scored for the Maple Leafs (12-11-4), who lost for the first time in four games under coach Sheldon Keefe. Michael Hutchinson made 30 saves.
Tavares took a pass from Ilya Mikheyev at the bottom of the right face-off circle to give the Maple Leafs a 1-0 lead at 18:54 of the first period.
Tavares scored his second of the game to make it 2-0 when he picked up the rebound of his shot off the end boards and tucked it by Ullmark at 1:21 of the second.
"We came out in the first period and play well, played really well, and the third period," Hutchinson said. "I think it shows a lot about our team that were able to make adjustments after the second period and come out and generate a lot of offense in the third period. We came close a bunch of times, one shift late in the third period there where it just felt like the puck is going to go in, but their goalie made some big saves, and it ended up being the difference."
Skinner scored the first of four straight goals by the Sabres in the second period on a wrist shot to make it 2-1 at 5:45.