Buffalo had been trying to win back-to-back games for the first time this season, but Brian Elliott turned in his best outing of the year in goal for the Senators.
Alfredsson opened the scoring on the power play with 8:06 to go in the first period and then broke a 2-2 tie with 9:26 left in the second. His third goal came into an empty net, again on the power play, with 22 seconds remaining in the contest.
Elliott brought a 4.62 goals-against average into the game and he made 28 saves to even his record at 2-2. The Senators recorded just their second win of the campaign and their first on the road.
Tim Connolly scored both Buffalo goals. Ryan Miller stopped 25-of-28 shots for the Sabres.