Ales Kotalik and Michael Ryan also scored for the Sabres, who have won two in a row after a three-game losing streak.
Daniel Alfredsson and Dany Heatley scored for the Senators, losers in two of three. Ottawa, which has an NHL-high 32 points, lost for just the fourth time overall.
The game marked the first meeting in Buffalo since Alfredsson's overtime goal in Game 5 of last season's Eastern Conference finals sent the Senators to the Stanley Cup Finals.
Ryan Miller, making his seventh consecutive start, finished with 27 saves -- 15 in the second period -- for Buffalo. He was helped in the third when Senators center Chris Kelly hit the post following a deke with 13:30 left while Ottawa was short-handed.
The Sabres raced out of the gate with three goals in the first, and peppered Ottawa goalie Ray Emery with 14 shots. Ryan scored his first just 1:26 in, and Roy capped the flurry with his seventh of the season with only 38 seconds left.
Ottawa responded with a pair of goals in a two-minute span midway through the second period to cut the deficit to 3-2. Alfredsson scored his 16th of the season, capitalizing on a bad giveaway by Buffalo defenseman Henrik Tallinder, and Heatley followed with his 10th while the Senators were on the power play.