Buffalo had managed only one goal in the past four games. The Sabres have scored five or more once this season and have two or fewer goals in 17 of their 28 games but were able to break out against the skidding Avalanche.
Nathan MacKinnon scored both goals and Semyon Varlamov made 31 saves for Colorado, which has lost three straight. The Avalanche finished their homestand 1-4 after Kane scored the winner on a 4-on-4 at 11:54 of the third period.
Eichel added an empty-net goal at 19:27 to seal it.
With the game tied at 1 late in the second period, Buffalo got a break to take the lead. Johan Larsson knocked the puck back into the offensive zone with two of his teammates still below the blue line, and McCabe scored moments later.
The Avalanche challenged that the play was offside but the goal was upheld upon replay review. Colorado was assessed a two-minute minor for delay of game.
The NHL, in a tweet, explained "that all Sabres players tagged up at the blue line prior to Johan Larsson touching the puck in the offensive zone, rendering the play onside. Therefore the original call stands -- good goal Buffalo Sabres."
Ryan O'Reilly burned his former team when he stole the puck from Alexander Kerfoot and sent a pass to Pouliot near the Colorado net, and the center scored on a one-timer to make it 1-0 at 5:32 of the second period.
It was Buffalo's fourth short-handed goal of the season.
MacKinnon scored at 12:22 of the second to tie it.
O'Reilly had two assists. ... Avalanche LW Gabriel Landeskog served the last of his four-game suspension for a cross-check on Calgary's Matthew Tkachuk. ... Buffalo C Scott Wilson played 14:19 a day after being acquired from the Detroit Red Wings for a fifth-round draft pick. ... Colorado C Colin Wilson returned to the lineup after missing three games with a lower-body injury. ... The Sabres assigned forward Kyle Criscuolo to Rochester of the AHL. ... Colorado recalled forward Rocco Grimaldi from San Antonio of the AHL.
Sabres: Play the Blackhawks in Chicago on Friday.
Avalanche: Start a four-game road trip in Tampa Bay on Thursday night.