Antoine Vermette also scored for the Coyotes (18-16-6) who have gone 5-1-2 in their last eight games and now sit in sole possession of ninth place in the Western Conference, just one point back of the idle Detroit Red Wings.
Nail Yakupov responded for the Oilers (16-17-6) who are sliding out of contention, having lost four in a row and sitting four points below the playoff cut in 12th.
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 that would have gone wide had it not hit Oilers goalie Devan Dubnyk and deflected in.
Dubnyk was directly responsible for giving the Coyotes a 2-0 lead nine minutes into the second period as well.
The Oilers goalie went out to play a puck behind the net and got tangled up before sending the puck straight out in front to the stick of Vermette, who put home his ninth of the year into the empty cage.
It was Yakupov's turn for an egregious Oilers give-away with three minutes left in the second as he coughed up the puck at his own blue-line, giving David Moss a short-handed breakaway. Moss had Dubnyk beat with a nifty deke, but ended up hitting the post.
The shots favoured Phoenix 22-15 after 40 minutes.
Edmonton finally got onto the scoreboard eight minutes into the third period as a Ryan Smyth shot caromed off of the leg of Phoenix defender Michael Stone and Yakupov was able to redeem himself for his earlier gaffe by batting in his 10th of the year to make it 2-1.
Phoenix put the game away with a power-play goal from Moss with nine seconds left in regulation time.
There was no scoring in the relatively uneventful first period.
Phoenix won the battle of the shot clock with 10 on Oilers starter Devan Dubnyk, but Coyotes goalie Mike Smith likely had to make the toughest stop on the eight shots he faced, stoning Jordan Eberle on a second effort in tight with eight minutes to play in the first.
The Coyotes travel to Calgary to face the Flames and cap off a three-game trip on Friday. The Oilers host the Flames on Saturday.
NOTES: It was the third and final meeting between the two teams this season, with Edmonton capturing the first two. Yakupov's overtime goal gave Edmonton a 2-1 win in Phoenix in January, and they 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 still lost 10 of their previous 13 to the Coyotes... After a five-point night against Calgary on April third, Oilers forward Taylor Hall was held pointless for his team's next three games before returning home to face Phoenix… Oilers forward Ales Hemsky returned to the lineup after missing his team's last game with a foot injury. Ryan Jones came out to make room… Phoenix defenceman Zbynek Michalek returned to the lineup from an ankle injury. Forward Lauri Korpikoski remained day-to-day with an upper body injury.