Desharnais set up Oscar Klefbom's game-tying goal late in the third period, then scored the winner at 18:15 of overtime as Edmonton beat the San Jose Sharks 4-3 in Game 5 of their first-round Western Conference playoff series.
The Oilers lead the best-of-seven series 3-2. The winner faces the Anaheim Ducks, who swept the Calgary Flames.
Edmonton outshot San Jose 48-30, including 14-2 in overtime. Oilers goalie Cam Talbot made 27 saves for the win, while San Jose's Martin Jones topped 44 shots.
With 2:46 left in the third, a blast from Klefbom caromed off the post and went in.
Jones made a trio of wonderful saves in the overtime. First he closed the pads to rob Draisaitl, then got a stick extended to stop what looked to be a tap-in for Ryan Nugent-Hopkins. He then sprawled across the crease to rob Connor McDavid.
Edmonton's Patrick Maroon, who scored a career-high 27 regular-season goals but had been snake-bitten in the playoffs, opened the scoring at 5:28, banging home a rebound off a point shot from Matthew Benning.
Had it not been for a few inches, the Oilers could have been up by a bunch halfway through the first. Darnell Nurse twice hit goalposts with his shots, then it was Jordan Eberle's turn to ring one off the iron.
And those posts came back to bite the Oilers at 10:12 as the Sharks tied it on a goal from Mikkel Boedker, who was wide open in front of the goal to take a pass from Chris Tierney.
The Sharks took a 2-1 lead at 15:52 of the first period. Thanks to a turnover from Milan Lucic and a bad Edmonton line change, Joe Thornton and Patrick Marleau surged up the ice on a two-on-one -- with Marleau poking home a rebound off Thornton's shot that had squeezed through Talbot and sat on the goal line.
At 8:38 of the second as a Sharks power play was coming to an end, Edmonton native David Schlemko's seeing-eye shot from the point found the net, giving the Sharks a two-goal margin.
With 1:27 left in the second and the Oilers on a power play, Mark Letestu made it 3-2, converting a no-look feed from Draisaitl.
NOTES: After the morning skate, Oilers RW Leon Draisaitl addressed his Game 4 spear of Sharks C Chris Tierney. "I think everyone knows I'm the last guy that wants to play that type of game. It was a bad play by me," Draisaitl said. ... Sharks RW Mikkel Boedker, a scratch in Game 4, returned to the lineup in Game 5, replacing RW Joonas Donskoi. ... The Sharks also scratched D Dylan DeMelo and C Micheal Haley. ... The Oilers scratched D Eric Gryba, C Matt Hendricks, RW Iiro Pakarinen and LW Jujhar Khaira. ... With an assist, Oilers C Connor McDavid snapped his two-game pointless streak.