Edler got the Canucks on the board 3½ minutes later with a massive slap shot from the blue line. The speeding puck squeezed through traffic and past Ullmark down low.
Vancouver went up by one at 15:31 of the first after defenseman Derrick Pouliot sliced a pass through the Buffalo crease to Baertschi, who collected it on his tape and popped the puck into a wide-open net.
The Swiss left wing sustained a concussion in October that kept him out of the lineup for 30 games. He has six points since he returned late last month.
Early in the second, Pouliot and fellow defenseman Erik Gudbranson got caught behind the Vancouver net, leaving Okposo wide open at the hash marks. The right wing got the puck and flipped a backhand past Demko to even the score.
Vancouver pulled ahead once again eight minutes into the period.
Horvat stripped Buffalo’s Lawrence Pilut of the puck and made a beautiful pass to Boeser in front of the Sabres net. The right wing tipped it in for his 16th goal of the season.
“Me shooting the puck hasn’t been working so I thought I’d give it to somebody who’s going to put it in the net,” Horvat said.
Horvat doesn’t have a goal since Dec. 20, but his assist was his 200th career point.
“Never when you’re playing in the NHL do you think you’ll be able to hit these kind of milestones,” he said. “It’s really exciting and it feels even better to get that win.”
The lead didn’t last long. Almost three minutes later, Conor Sheary made a quick pass to Reinhart in front of the Vancouver crease and he put in a no-look backhand up high.
“Probably half our team didn’t play their best hockey game. And when you can not play your best and win, that’s a real bonus in the NHL,” Green said.
“Our goalie gave us a good period in the third period. And we found a way to win a hockey game.”
Nearly six minutes into the third, Canucks left wing Josh Leivo dug out the puck from behind the Buffalo net and dished it to Eriksson. He put a one-timer past Ullmark for his fourth point in three games.
The Sabres had opportunities to tie it again on a power play late in the third. Ullmark was pulled with 87 seconds left, but Demko held strong.
“Responsibility without the puck, that was the difference. But I can’t complain, we had a heck of a game,” Buffalo coach Phil Housley said.
The Canucks registered just four shots in the opening period. Demko kept them in a game that got off to an “ugly” start, according to Horvat.
“That’s unbelievable. Especially at a young age, coming in. These are meaningful games and he stepped up like great players do and he played phenomenal tonight,” Horvat said. “We owe him a lot of credit.”
NOTES: Vancouver’s Nikolay Goldobin was a healthy scratch for the second game in a row. … The defeat ended a three-game swing through Canada for the Sabres, who lost 7-2 in Edmonton on Monday and beat Calgary 3-2 in overtime on Wednesday.
Sabres: Off until after the All-Star break.
Canucks: Host the Detroit Red Wings on Sunday.
More AP NHL: https://apnews.com/NHL and https://twitter.com/AP_Sports