VANCOUVER -- Elias Pettersson had two goals and an assist for the Vancouver Canucks in a 3-2 victory against the Buffalo Sabres at Rogers Arena on Tuesday.

Quinn Hughes and J.T. Miller each had two assists, and Casey DeSmith made 15 saves for the Canucks (43-18-8), who are 5-1-1 in their past seven games.

“I thought we played hard, played a good game,” Hughes said. “I thought our power play probably could have gone [5-for-5] and the [defensemen were] really good and the forwards worked and put pressure on their mobile group, and we had a lot of looks.”

Rasmus Dahlin scored twice, and Devon Levi made 31 saves in his first NHL start since Jan. 24 for the Sabres (33-32-5), who were coming off a 6-2 win at the Seattle Kraken on Monday.

“We gave it our all,” Dahlin said. “Good team over there, back-to-back, we played our [butts] off.”

Conor Garland, who was moved up to play on Pettersson’s line going into this game, put the Canucks ahead 1-0 at 4:06 of the first period by jamming a rebound under Levi’s skate, which was against the post, after a sharp-angled shot by Hughes.

“I’m happy with my performance today. Definitely [happy with] our line,” Pettersson said. “Garland makes a lot of good plays. … It was a good first game with our line.”

The Sabres challenged for goalie interference because Levi’s skate was pushed into the net, but video review determined there was no interference before the goal.

“It was close,” Levi said. “The guy definitely pushed me in the net. I kind of lost it and then I was in the net and the puck was in the net too. It was just an unfortunate way to start the game.”

Levi, who was recalled from Rochester of the American Hockey League on Saturday, kept it close while the Sabres were being outshot 21-8 to start the game. He made point-blank saves against Sam Lafferty and Miller in the first period and stopped Ilya Mikheyev on a short-handed breakaway at 12:39 of the second.

“Devon gave us a chance all the way through late to get a point or win a hockey game, and you can't ask more than that as your goaltender,” Buffalo coach Don Granato said, “Especially in these situations, back-to-back, a great building, a team rested, a team hungry and a highly skilled team. He was great in there and gave us a chance.”

Levi said the adjustment was easier because he played Friday for Rochester, and he wasn’t worried about the pressure of the Sabres trying to stay in the Stanley Cup Playoff race.

“You can feel it a bit, but that's what makes it fun, that's what makes this game meaningful,” Levi said. “You know it's a big game and the boys are relying on you, and there's no better feeling than having that on your back and being able to give everything you got for the team in a special moment. It’s great to be back. I feel like the transition has been seamless.”

Pettersson, though, made it 2-0 with a power-play goal at 13:48 of the second, lifting a backhand past Levi's glove on a rebound to the left of the crease.

“It’s a step in the right direction,” Pettersson said about the power play, which had failed to score in four of the previous six games and went 1-for-5 on Tuesday. “We had looks to score on every chance that we got tonight, so that’s a good thing, and just keep building on it.”

Dahlin pulled Buffalo to within 2-1 at 9:23 of the third period. He skated past Elias Lindholm and then deked around Filip Hronek into the slot before scoring with a backhand past DeSmith’s glove.

“He's just highly skilled. The shot fakes and the toe drags, he's got it all,” DeSmith said. “That was a world-class play by him, and I would have liked to have it, but at least we got the W.”

Pettersson scored his 33rd goal of the season into an empty net with 1:51 left to make it 3-1.

Dahlin scored on a point shot that deflected in off a defender with 22 seconds left and Levi pulled again for an extra attacker for the 3-2 final.

“Rasmus is one [heck] of a leader. He battled,” Granato said. “On a night where there was not a lot going right, you have a chance to win with Devon playing very well and Rasmus stepping up.”

Buffalo went 0-for-4 on the power play.

“We've got to take care of the power play more,” Dahlin said. “I have to do a better job. We have to figure something out there.”

NOTES: The Sabres have yet to sweep back-to-back games this season, falling to 3-8-0 in the second game. … Buffalo dressed No. 1 goalie Ukko-Pekka Luukkonen, who made 32 saves in his fifth straight start on Monday, as the backup to Levi. Goalie Eric Comrie, who backed up Luukkonen in Seattle but only has two starts since Dec. 5, was a healthy scratch. … Canucks forward Nils Aman returned after nine games as a healthy scratch but took a hooking penalty and only played 7:35.