David Perron scored the game winner midway through the third period and the Oilers snapped an 11-game losing streak and avoided a ninth straight home loss, which would have tied a team record.
Nail Yakupov also scored for the Oilers (7-15-5).
Edmonton also captured its first win against a Western Conference opponent this season, moving to 1-12-4 in the conference.
"We can finally put away the thing about not having one against the West," Perron said. "That's a good thing. There is one way to win and we did that tonight."
Oilers head coach Dallas Eakins was happy end the two losing streaks in one game.
"Getting rid of that is huge," he said. "Whatever you want to call it, getting the monkey off your back, an elephant, a large gorilla it feels good for everybody. Most importantly, for our players and our fans. I thought we played a fairly similar game to our last one in Winnipeg. We have points in four of our last five games. I thought we played a real mature, smart game. It was a real solid effort."
Oilers goalie Ben Scrivens said his team caught a bit of a break from the schedule maker, but also stepped up its own game.
"San Jose was probably a tired group and we got them on the second night of a back-to-back, which was fortunate for us and helped us out," he said. "But at the end of the day, we executed pretty well. That has to be our expectation now, of how we have to play."
Tye McGinn scored the lone goal for the Sharks (14-11-4), who had a four-game winning streak halted.
Sharks head coach Todd McLellan said his team wouldn't blame the loss on playing three games in four nights.
"If you go there, it begins to sound like we're using excuses," he said. "Teams play that in the league all the time. They (Oilers) happened to be sitting since Wednesday and they were fresh, they took advantage of it."
Edmonton was the better team in the opening period, putting 11 shots on Sharks goalie Alex Stalock, while San Jose only had two shots on Scrivens.
The Oilers broke the deadlock eight minutes into the second period on a power-play goal. Sharks defender Justin Braun lost his footing and landed on Stalock's back as he was out of the crease trying to gather the puck. That allowed Jordan Eberle to send the puck in front to Yakupov, who scored just his fourth of the season on the wide-open net.
San Jose tied the game 1-1 two minutes later as Patrick Marleau out-hustled the Oiler defense to negate an icing call before making a no-look backhand pass to an open McGinn, who beat Scrivens for his first goal of the season.
The Oilers caught a break just past the midway point of the third period to take a 2-1 lead. Perron's shot deflected off of San Jose defender Brenden Dillon and past Stalock. It was Perron's fourth goal of the season.
Scrivens had 20 saves on the night.
The Oilers and Sharks play a rematch in San Jose on Tuesday.
Notes: It was the first of five games this season between the Sharks and the Oilers, three of them are scheduled in December. The Sharks won four of five games against the Oilers last season recording 18 goals in those four victories. Edmonton's lone win came when goalie Ben Scrivens recorded a record 59 saves in a shutout win... San Jose forward Patrick Marleau had 26 points in his previous 22 meetings with the Oilers, scoring four goals and setting up two more against them last season... Stalock made his first start in the San Jose net since Nov. 8 because of a knee injury... Out with injuries for the Oilers were forwards Benoit Pouliot (foot) and Matt Hendricks (leg) and defenseman Nikita Nikitin (back)...Out for the Sharks were Troy Grosenick (upper body), Raffi Torres (knee), Matt Nieto (lower body) and Tyler Kennedy (arm).
All content copyright ©2014 Daily Journal, a division of Home News Enterprises unless otherwise noted.