Antoine Vermette also scored for the Coyotes, 5-1-2 in their past eight games and now in sole possession of ninth place in the Western Conference, one point back of the Detroit Red Wings.
"It's tight in the standings and there aren't too many games left in the season," Vermette said. "We are well aware of the situation we are in and how important every single point is right now. It was a big win for us."
The Coyotes improved to just 5-9-5 on the road, something captain Shane Doan says will have to look even better by the end of the month if they want to extend their season.
"We haven't been as strong as we would like to be on the road," he said. "We have five games left away from home and we need to answer some questions. We need to stay above .500 on the road the rest of the way."
Goalie Mike Smith stopped 29 shots for the victory.
"He was great," Vermette said. "He has been playing well lately and has been a big factor for our team. He stood tall at the key moments tonight to give our team the chance to win."
Nail Yakupov responded for the Oilers, who are sliding out of contention, having lost four in a row and sitting four points below Detroit.
"It's a very disappointing loss," Edmonton coach Ralph Krueger said. "We needed to have more offense in the first period being at home here and what was on the line. But it wasn't that way. It's a tough loss to swallow for all of us."
Krueger said there is no sugar-coating just how desperate his team's playoff plight is.
"We all know there are no points to give any more," he said. "We aren't going to give up on this. We're not going to speak that language or allow it in the room. Now we are in a position where we are going to need some help from other teams and some things are going to have to happen. We just have to take care of what we can still take care of."
Phoenix got a gift goal to start the second period, scoring just 37 seconds in as Gordon sent what should have been a harmless shot on net from the corner. It would have gone wide had it not hit Oilers goalie Devan Dubnyk and deflected in.
"My stick got caught in a bad spot," Dubnyk said. "I was prepared for the shot but my stick got caught on the corner of my pad, and when I squeezed and moved over it didn't go."
Dubnyk was directly responsible for giving the Coyotes a 2-0 lead midway in the second period as well. The goalie went out to play a puck behind the net and got tangled up before sending it straight out in front -- to the stick of Vermette, who put home his ninth goal.
It was Yakupov's turn for an awful Oilers giveaway late in the second as he coughed up the puck at his blue line, giving Moss a shorthanded breakaway. Moss had Dubnyk beaten with a nifty deke, but hit the post.
Edmonton finally got onto the scoreboard as Ryan Smyth's shot caromed off the leg of Phoenix's Michael Stone. Yakupov was able to redeem himself for his earlier gaffe by batting in his 10th to make it 2-1.
Phoenix put the game away with a power-play goal from Moss with 9 seconds left in regulation time.
It was the third and final meeting between the teams this season, with Edmonton capturing the first two. Yakupov's overtime goal gave Edmonton a 2-1 win in Phoenix in January, and the Oilers made it two in a row over Phoenix with a 3-2 shootout win on a goal by Sam Gagner in February. ... Edmonton came into the game having lost 10 of the previous 13 to the Coyotes despite this year's successes. ... After a five-point night against Calgary on April 3, Oilers forward Taylor Hall was held pointless for his team's next three games. ... Oilers forward Ales Hemsky returned after missing his team's last game with a foot injury. Ryan Jones was scratched to make room. ... Phoenix defenseman Zbynek Michalek returned from an ankle injury. Forward Lauri Korpikoski remained day to day with an upper body injury.
Copyright by STATS LLC and The Associated Press
EDMONTON, CANADA. - APRIL 10: Oliver Ekman-Larsson #23 of the Phoenix Coyotes is chased by Mike Brown #13 of the...