It was the Sabres' (13-15-4) third straight win, a run that began with an overtime triumph in Montreal on Tuesday. Ryan Miller stopped 39 shots.
The Sabres broke the scoreless deadlock midway through the second on a two-man advantage. With Mike Blunden and P.K. Subban in the box, the Sabres tried to find a shooting lane. Defenceman Christian Ehrhoff finally found one at 10:25, firing a shot from the point that deflected off Vanek for his 15th of the season.
Vanek struck again at 19:21 off a Canadiens turnover. Brendan Gallagher broke in on a pass attempt but the Sabres were there to intercept. Taking a pass from Tyler Ennis, Vanek finished off the play with some slick stick work to beat Price a second time.
Ryder cut the lead in half with his 10th of the season, first at the Bell Centre since being acquired. Left all alone in front of Miller, the winger had no trouble tipping Andrei Markov's point shot on the power play.
It was Ryder's first goal on Montreal home ice as a Canadien since March 11, 2008.
After a slow start in their last meeting against the Sabres, the Canadiens had their legs moving in the opening period, outshooting Buffalo 13-5.
Consecutive shifts from the line of Tomas Plekanec, Michael Ryder and Brian Gionta, followed by Lars Eller, Alex Galchenyuk and Colby Armstrong delivered quality opportunities for the Canadiens but they couldn't find the back of the net.
Montreal also had chances late in the frame on a delayed penalty call against the Sabres but were denied by Miller.
NOTES: The Canadiens scratched defenceman Tomas Kaberle (healthy) and forward Ryan White (lower body) … Claimed off waivers from the New York Rangers earlier in the day, centre Jeff Halpern was not in Montreal in time for the game … The Sabres scratched forward Drew Stafford and defenceman John Scott, both healthy, while defenceman Andrej Sekera remained sidelined with an injury … Buffalo clinched the season series with the win and have not lost a season series to Montreal since 2007-08.