Evander Kane scored, and Stuart Skinner made 24 saves for the Oilers (48-25-6), who were coming off a 3-2 overtime loss to the Arizona Coyotes on Friday.
“We knew this was an important game,” Edmonton forward Warren Foegele said. “We’re just trying to play the right way heading into playoffs.
“I thought we played strong and there are areas to improve on, but obviously disappointed we didn’t get the two points.”
Oilers captain Connor McDavid missed his third straight game because of a lower-body injury.
“You definitely notice when he’s not out there,” Canucks defenseman Tyler Myers said. “When he is playing, your awareness on the ice seems to be a lot higher, making sure you know when he’s picking up speed so you don’t get burnt.
“Saying that, I don’t think those guys get enough credit for the depth they do have. Even without him, I thought they were still a good team. They were on a back-to-back, they pushed hard and they played a good hockey game.”
Lafferty put the Canucks ahead 1-0 with 16 seconds left in the first period, snapping a shot blocker side on Skinner from the right face-off dot.
Suter made it 2-0 at 11:00 of the second period, redirecting in a centering pass from Myers at the right hash marks.
Kane cut it to 2-1 at 17:48, tipping a point shot from Darnell Nurse over the right shoulder of DeSmith.
"He's a difference-maker. He has the ability to score a key goal like the important one he scored, and it was a skilled goal,” Knoblauch said. “He goes to the net and he was able to deflect that one in."