Mitchell Marner had a goal and an assist for the Maple Leafs (37-16-8), who had won three in a row. Ilya Samsonov made 27 saves.
"We wanted to try and keep them out of the middle and didn't do a great job of that tonight," Marner said. "We let them have the freedom, speed and space through that neutral zone, and they can make you pay for it, and they did."
McDavid gave the Oilers a 1-0 lead on a power play at 3:49 of the first period when he lifted in the rebound of Leon Draisaitl's one-timer.
David Kampf tied it 1-1 at 12:15, scoring glove side from the slot after Marner took the puck away from Cody Ceci along the boards.
McDavid put Edmonton back in front 2-1 at 13:53 on an individual rush following a turnover in the neutral zone. He skated into the high slot, cut to the outside on Timothy Liljegren, and scored five-hole from the left circle.
McDavid has 21 points (10 goals, 11 assists) during an eight-game point streak.
"I think at this level we all have an understanding of what you have to bring to the table and the level of execution, especially when you're playing the No. 1 offensive team in the League and with the type of year [McDavid] is having," Toronto forward John Tavares said. "We just didn't do a good enough job, especially early, taking care of things in the neutral zone. [McDavid] got going with a power-play goal, and he's been hot all year. Especially in the last number of games, he's been putting the puck in the net. We didn't make it more difficult gaining entry into our zone and earning offense that way."