Buffalo Sabres\' Jason Pominville (not shown) scores on Vancouver Canucks goalie Dany Sabourin, right, as Canucks\' Brendan Morrison, left, defends during the first period of the NHL hockey game at HSBC Arena in Buffalo, N.Y., Friday. (AP Photo/David Duprey)
Chris Drury tied the score with 39.1 seconds left in the third period. Jason Pominville and Paul Gaustad also scored in regulation for the Sabres. Ryan Miller stopped 25 shots and allowed only one goal on four shootout attempts in helping Buffalo defeat one of the NHL's hottest teams.
Markus Naslund, Taylor Pyatt and Jan Bulis scored for the Canucks, who lost for only the second time in 12 games and also had a six-game road win streak snapped.
After both teams scored once on each of their first three shootout attempts, Kotalik scored when he faked going to the forehand and lifted a backhander into the top of the net over Canucks goalie Dany Sabourin.
Miller then got his blocker up to stop Josh Green on the Canucks' final attempt.
The Eastern Conference-leading Sabres (33-11-4) overcame an inconsistent performance to win their second straight game and improve to 4-4-1 in their last nine. Buffalo also ended a 0-3-1 skid against Vancouver by beating the Canucks for the first time since Jan. 8, 2002.
It was a back-and-forth contest in which the Canucks - playing their fourth road game in seven nights - built 2-1 and 3-2 leads.
Vancouver appeared to be in control before Drury tied the score on a pinball-type goal. With Miller off for an extra attacker, Brian Campbell's point shot deflected off of Pominville, then off Canucks defenceman Mattias Ohlund's leg. The puck bounced to the right of the net, where Drury redirected it toward the goal, the puck dribbling in off Sabourin's glove.
Sabourin was sharp in filling in for Roberto Luongo, the Western Conference All-Star starter next week. He stopped 33 shots in making only his fourth start of the season and first in 13 games.
His best series of saves came with 3½ minutes left when he stopped Daniel Briere's shot from the point and then, while falling backward, managed to get his arms up to prevent Teppo Numminen from flipping a backhander in over him.
The Canucks converted 2-of-6 power-play chances, but squandered an overtime opportunity, when Buffalo's Jaroslav Spacek was sent off for tripping Josh Green.
Bulis' goal, which put the Canucks up 2-1 late in the second period, came on a short-handed breakaway.
Notes: Canucks C Trevor Linden was held out because of the flu, while D Willie Mitchell (groin) missed his third of four games, after playing sparingly at Ottawa. ... The game was the Sabres' first of five this season against Northwest Division rivals, and marked Vancouver's first trip to Buffalo since a 4-2 win on Feb. 7, 2003. ... Sabres C Jiri Novotny missed the third period with what the team referred to as a lower-body injury. Novotny favoured his right ankle after being tripped in the first period.