Stuart Skinner made 46 saves for Edmonton (12-4-0), which was coming off a 5-2 loss at Winnipeg on Tuesday.
"It was an exciting game," Skinner said. "It was a hard-fought battle all night between both teams. It was a hard-fought win. It was huge getting [McDavid's] goal to tie it up, and then the kill in overtime really got us the momentum going into the shootout and we were able to capitalize. It was huge that we got the win."
Nikolaj Ehlers scored, and Connor Hellebuyck made 31 saves for Winnipeg (9-3-4), which had won three straight but is 3-0-2 in a five-game point streak.
"It was a good game, it was a [heck] of a game," Jets coach Paul Maurice said. "It had all the right elements for hockey. It had a little bit of physicality and it had lots of skill and lots of smart, hard play. It was a heck of a game. I really enjoyed that one."
Ehlers gave the Jets a 1-0 lead at 13:57 of the third period with a one-timer after taking a drop pass from Mark Scheifele.
"We didn't give them too much throughout most of that game … we liked a lot of our game," Winnipeg forward Kyle Connor said. "I think we could have buried a couple more chances. Their goalie played well and I think [Hellebuyck] played well, too. I think it was a really good game; it was back and forth. I think if we keep playing that game, nine times out of 10, we win, so we're happy with that."