Jakob Silfverberg, Ryan Getzlaf and Nick Ritchie scored for the Ducks (23-26-7), who went 3-0-2 on a five-game road trip.
"We've been at the opposite end of point streaks, now we're gaining some," Anaheim defenseman Michael Del Zotto said. "We may not have our best game every single night, but part of maturing as a hockey club is to get one or two points in those games, especially on the road as well."
WATCH: [All Ducks vs. Sabres highlights]
Ryan Miller made 31 saves to earn his 385th NHL win, tying Mike Vernon for 15th in League history.
"All of this has been nice. I enjoy playing and winning is what makes it more enjoyable," Miller said. "It's nice to be able to do that a number of times. I guess when I look back, I never would've expected to be on a list like that or playing this long, so I try to appreciate the opportunities and it's been fun."
Johan Larsson and Rasmus Dahlin scored, and Jonas Johansson made 25 saves for the Sabres (24-24-8), who are 1-2-1 in their past four games.
"We didn't have the battle in us that we had early in New York the other day (3-2 win on Friday)," Buffalo coach Ralph Krueger said. "What we were doing in the third to generate that traffic, and the movement in the offensive zone that led to multiple opportunities, is definitely something that we need to take with us. It's our game. It is really who we want to be, and we were not who we wanted to be the first 10 minutes, there's no question about it. Fifty minutes of it wasn't enough today because they just took such advantage of us not being ready at the start."
Silfverberg connected on a centering pass from Sam Steel on a rush to put Anaheim ahead 1-0 at 6:15 of the first period.
Getzlaf made it 2-0 off with a one-timer from the right circle after receiving a backhand pass from behind the net by Rickard Rakell at 10:45, and Ritchie slipped the puck through Johansson's legs on a turnaround in front to push the lead to 3-0 at 12:00.