Buffalo kicked things off with a pair of goals in quick succession in the first period. At the 7:59 mark Marcus Johansson collected a behind-the-net pass from Dominik Kahun and scored his eighth goal of the season.
Then 44 seconds later, Skinner, skating hard to the front of the net, redirected a Wayne Simmonds backhand attempt into the net.
With 5:46 left in the opening period, Johansson made a glove save on Lawson Crouse as the Coyotes forward skated in on a shorthanded breakaway to keep Buffalo ahead.
However, the Coyotes then scored two goals in 53 seconds at the start of the second period to tie it and then added the go-ahead goal for good measure.
Jordan Osterle scored on a one-timer in front 2:20 into the middle frame and then seconds after hitting the post, Phil Kessel netted one to make it 2-2 at the 3:13 mark.
On the ensuing faceoff, Victor Olofsson was hit along the Coyotes bench and limped off. He did not return. Olofsson missed 15 games earlier this calendar year with a right ankle injury.
And at 7:30 of the second, Arizona was rewarded once again when Clayton Keller ripped one off the post and then skated through the Sabres defense to hammer home his own rebound.
With 11:30 left in regulation, Johansson stopped Derek Stepan on a point-blank chance in front of the net.
Keller scored again, shooting on a 2-on-1 with 6:01 remaining to make it 4-2. Oliver Ekman-Larsson added an empty-netter with 20 seconds to go.