The Oilers captain had two goals and two assists and Jesse Puljujarvi had one of each. Tyson Barrie and Dominik Kahun also scored for Edmonton (31-17-2), and Leon Draisaitl had two assists.
McDavid leads the NHL with 91 points (31 goals, 60 assists).
Nate Schmidt and JT Miller scored for the Canucks (19-24-3), who saw their losing skid stretch to five games.
Mikko Koskinen stopped 20 of 23 for his 12th win of the season. Canucks goaltender Braden Holtby made 27 saves.
The Oilers hold a 4-2 advantage in the season series between the two teams with four games to go.
Edmonton is second in the North Division, eight points behind the Toronto Maple Leafs. Vancouver remains at the bottom of the Canadian All-Star group with nine games to go.
The Chicago Blackhawks rebounded the Oilers from the preliminary round in a five-game streak last season.
The Oilers had a 4-2 lead heading into the third Monday night and refused to give in. The Canucks managed just one shot on goal in the first 15 minutes of the period.
Vancouver shot Holtby with 3:29 left on the clock and the move immediately paid off with Boeser shooting a shot past Koskinen in a toss.
The right winger leads the Canucks in scoring with 38 points (18 goals, 20 assists).
McDavid sealed the score at 5-3, burying a shot in an empty net at 1:00 to go.
Kahun finished the second period with a blast in front of Holtby, making Edmonton 4-2 with 44.1 seconds remaining on the clock.
Miller briefly reduced the Oilers’ lead to 3-2 with his 12th goal of the year.
Vancouver’s second of the night came at 5:16 pm in the second when Miller slipped a backhand shot under Koskinen’s outstretched glove from the top of the crease.
Just 41 seconds earlier, McDavid landed a Canucks pass in the neutral zone, skated in Vancouver territory and threw a shot at Holtby. The goalkeeper appeared to make a glove save at first, but the puck sank through and his attempt to dive back and sweep it out of the goal line failed.
Barrie gave Edmonton a 2-1 lead just 18 seconds into the game.
Holtby stopped a Puljujarvi shot but couldn’t correct the rebound. Barrie picked up the puck at the top of the play area and quickly got it in for his eighth goal of the season.
The Canucks tied the game 1-1 before the end of the first, thanks to Schmidt’s fifth goal of the season.
The defenseman took advantage of a screen in front of rookie Nils Hoglander’s net and fired a shot from the top of the left face-off circle, beating Koskinen on the blockers’ side.
The Oilers quickly took the lead after McDavid sent a smooth pass to Puljujarvi across the slot. The Finnish forward shot a clock behind Holtby from the right face-off circle to give Edmonton a 1-0 lead at 3:45 am.
It was Puljujarvi’s 13th goal of the year.
The Canucks recalled defenseman Jack Rathbone and center Tyler Graovac from the taxi team earlier Monday, moves to fill spots on a team that has been rocked by injuries.
Center Brandon Sutter (upper body) is the latest Vancouver player to be injured, joining forwards Tyler Motte, Antoine Roussel, Jay Beagle and Elias Pettersson who were already injured.
The team also put right winger Jake Virtanen on leave on Saturday amid an investigation into allegations of sexual misconduct.
Monday’s game kicked off four straight games between the Oilers and the Canucks. The second round will take place in Vancouver on Tuesday.
NOTES: Each side was 0-1 on the power play. … Oilers defenseman Darnell Nurse played his 400th NHL game.