Canucks forward Josh Leivo picked up a long stretch pass down the right wing, got by the Sabres defense and beat Hutton to open the scoring with 7:03 remaining in the first period.
The Sabres were outshot 9-3 in the first and it looked like things could spiral out of control when Antoine Roussel made it 2-0 just 3:07 into the second period.
A wrist shot by Tyler Myers hit a body in front, and Roussel was able to flip the puck into an empty net.
However, Buffalo quickly rallied back to tie the game.
Okposo skated right down the middle of the ice and put home a behind-the-net pass from Johan Larsson 5:24 into the second. He beat Thatcher Demko five-hole with a one-timer for his first goal since opening night. Okposo had missed the previous 10 games due to a concussion.
Then 1:04 later, on a delayed penalty call, Rasmus Ristolainen stepped into a wrister from the right faceoff circle and Reinhart tipped it in to tie the game.
The Canucks took the lead once more with 2:49 remaining in the second. Leivo netted his second of the game after Vancouver collected a turnover in the neutral zone just after they killed off a penalty. The Canucks set up and Leivo scored short side.
The Sabres tied it up again when Olofsson scored on the power play with 43.2 seconds remaining in the second period.
Vancouver took the lead once again when Tyler Myers potted a shorthanded goal at the 4:51 mark of the third, and they went up by two goals when Roussel banged in a rebound to make it 5-3.
Girgensons cut in and his shot deflected in to put Buffalo within one with 7:55 remaining in regulation. Then with the goaltender pulled, Johansson completed the comeback with his fifth goal of the season.