Simon Benoit also scored for Anaheim. Ryan Strome, Max Comtois, Nathan Beaulieu and Adam Henrique recorded assists. John Gibson made 33 saves.
Peyton Krebs and Victor Olofsson each scored twice for the Sabres, who again pulled within four points of the Eastern Conference's second Wild Card spot.
Dylan Cozens and Jeff Skinner also scored for Buffalo. Ilya Lyubushkin tallied three assists, while Alex Tuch and Rasmus Dahlin added two apiece.
Netminder Ukko-Pekka Luukkonen grabbed his 12th win of the season, stopping 33-of-36 Anaheim shots.
The start followed a familiar script for Anaheim after Thursday's comeback win in Columbus, with Buffalo striking first midway through the first period. The Sabres took advantage of a few near misses and strong netminding on one end, then capitalizing on a sudden Grade-A look at the other.
Anaheim did everything but score on an early power play, setting up in the offensive zone and getting quality chances in tight from Troy Terry and Jakob Silfverberg, but Luukkonen answered the bell both times.
Seconds after Buffalo survived the kill, Cozens took a pass along the blue line from the former top pick, Dahlin, dancing around Silfverberg before lifting a shot over Gibson's shoulder from in close to give the hosts the afternoon's first lead.
Cozens, selected seventh overall in 2019, ranks third among 2019 draftees in career scoring (33-60-93), trailing only Jack Hughes and Zegras. The 21-year-old has 42 points in 45 games this season.
Dahlin is one of just four NHL defensemen averaging more than one point-per-game this season.
The Sabres added to the lead late in the frame on the power play, getting a fortunate home-ice bounce in the process. Tuch danced into the slot, leaving a pass behind for Skinner, whose shot hit Frank Vatrano's leg, changing direction enough to fool Gibson and put Buffalo up 2-0.
Much like they did two days ago though, the Ducks bounced right back in the second period, today thanks to a pair of darts by Zegras.
The first came just four minutes into the middle frame, with Zegras and Strome playing catch on left wing just inside the blue line before Zegras stepped in and beat Luukkonen over the shoulder to the short side.