Edmonton closed within a single goal with 12:10 still to play, but could not complete the rally and wound up losing its sixth game in a row. Phoenix ended a two-game skid.
Ribeiro added to the Phoenix lead by deflecting a shot past Ilya Bryzgalov three minutes into the middle period.
Edmonton's comeback was started by Matt Hendricks late in the second period and both David Perron and Ryan Nugent-Hopkins scored in the third to give the Oilers hope.
Mike Smith was able to keep Edmonton off the board the rest of the way and earned the victory with 35 saves.
Bryzgalov stopped 25-of-29 shots.