VANCOUVER, British Columbia (AP) -- For one game at least, Zack Kassian lived up to his billing as a power forward who can produce points.
Kassian had four assists to earn the first four-point night of his NHL career Sunday night and the Vancouver Canucks rallied to beat his former team, the Buffalo Sabres 4-2.
"It was one of those games (where) it seemed the puck followed me," Kassian said. "It's nice personally, but it's even better we keep this streak going."
The Canucks have earned two consecutive wins for the first time since mid-January. Vancouver pulled within three points of eighth-place Phoenix, and one point of ninth-place Dallas in the race for the second wild-card playoff spot in the Western Conference.
The Sabres, last in the NHL, suffered their eighth loss in the past 10 games as they squandered an early 2-0 lead.
Brad Richardson, Shawn Matthias, Yannick Weber and David Booth, with his first goal in 33 games, scored for the Canucks, who have won five of their past eight.
The Sabres went ahead 2-0 only 3:29 into the game, but the score was tied 2-2 after the first period and the Canucks led 3-2 following the second.
"In this league you can't play good sometimes," Sabres coach Ted Nolan said. "You've got to play good all the time. That's a lesson to learn and something we have to do to move forward."
Tyler Ennis and Jamie McBain scored for Buffalo.
Kassian has faced criticism since he was traded to Vancouver from the Sabres at the NHL trade deadline in February 2012 in the four-player deal that saw former Canucks fan favorite Cody Hodgson head to Buffalo.
Kassian, Buffalo's top 2009 draft pick (13th overall) excelled offensively two days after saying he is playing primarily a checking role now while Hodgson is primarily an offensive player.
Hodgson, Vancouver's first choice (10th overall) in 2008, went without a point while the Sabres were outplayed for most of the game.
"I'm excited for every game, but obviously you want to play hard against your old team," Kassian said. "You definitely want to get the win, but it's nice when you play well individually and as a line."
Matthias, who was acquired in the Roberto Luongo trade from Florida, also had two assists while Richardson had one.
The Canucks had not posted two straight wins since beating the Calgary Flames on Jan. 18, when coach John Tortorella drew a suspension for charging their dressing room between the first and second periods, and Edmonton Oilers on Jan. 21.
Vancouver goaltender Eddie Lack overcame a slow start to earn the win. After allowing goals on Buffalo's first and third shots of the game, Lack was sharp and finished with 16 saves.
"The team did a great job bouncing back," Lack said. "I felt like I wasn't really tracking the puck well the first half of the game, but then I just kind of settled down and felt better after that."
Vancouver's quick rally from its early deficit spoiled a strong effort from rookie Buffalo goaltender Nathan Lieuwen, a 22-year-old Abbotsford, British Columbia, native who made just his second NHL career start and third appearance after being promoted from Rochester of the AHL on March 16.
He made 32 saves as his club was outshot 36-18.
"That's frustrating and that's hockey," he said. "You get some good bounces and you do good things and you make mistakes, so I'll definitely learn from it."
Weber scored the winning goal just 1:40 into the second period as he put a shot through Lieuwen's legs to give the Canucks a 3-2 lead. Sabres defenseman Mike Weber was close to his Canuck namesake on the play, but Lieuwen said the puck went straight in.
"I thought I had it and, obviously, there was a hole," Lieuwen said. "I don't know what to tell you. That's obviously one that I feel I can obviously save. What a terrible night for that to go in."
The goal spoiled his "dream come true" of playing in Vancouver, where he has "tons of family."
Ennis was also left frustrated as he watched the Sabres' lead vanish after he had McBain had put them ahead.
"We heard (Lack) has been shaky, so we wanted to get on him early, and we did," Ennis said.
Kassian was not around for the final horn because he took a puck between the eyes, for the second time on the night, with 1:32 left in the game. He needed "about 10 stitches" to repair a cut.