DENVER -- Evander Kane was stopped on a great scoring opportunity early in the game, but given another chance in the third period, he didn't miss.
Kane scored a tiebreaking goal late in game, and the Buffalo Sabres beat the Colorado Avalanche 4-2 on Tuesday night to snap a four-game losing streak.
Jack Eichel, Jake McCabe and Benoit Pouliot had a goal and an assist apiece, and Robin Lehner made 35 saves and for the Sabres (7-17-4).
"We played pretty good," said Lehner, who had several saves in the final two minutes when the Avalanche pulled goaltender Semyon Varlamov for an extra attacker. "This was a back-and-forth game, and we gave them some momentum with the penalties. They had some good grade-A chances."
Nathan MacKinnon scored two power-play goals, Alexander Kerfoot had two assists and Varlamov stopped 31 shots for Colorado. The Avalanche (12-12-2) have lost three straight and dropped four of five on their homestand.
"We dug ourselves in a hole for sure," MacKinnon said. "We should have been better on this homestand. We didn't take advantage of what we had in front of us. Hopefully it doesn't bite us at the end of the season."
Buffalo has scored 60 goals this season, the fewest in the NHL and an average of 2.14 per game, and the Sabres were shut out three times during the four-game losing streak before breaking out against Colorado.
The Sabres also hadn't gotten a goal from a defenseman before Tuesday, but McCabe changed that with his first, which came with a bit of controversy.
McCabe beat Varlamov with a screened shot at 18:59 of the second, but the Avalanche challenged the play was offside. Replays showed the puck clearing the zone with two Buffalo players still below the blue line as Johan Larsson tipped it into the offensive zone.
After a review the goal was upheld, Colorado was assessed a delay-of-game minor, and the Sabres took a 2-1 lead into the second intermission.
"The hockey gods were on our side on that call, and hopefully the floodgates open up for us on the back end," McCabe said.
The NHL Situation Room sent out a tweet explaining the ruling: "All Sabres players tagged up at the blue line prior to Johan Larsson touching the puck in the offensive zone, rendering the play onside."
MacKinnon tied it with this 10th goal midway through the third period, but Kane got the go-ahead goal, his 13th, less than two minutes later to put the Sabres back in front.
Buffalo coach Phil Housley was happy his players didn't hang their heads after MacKinnon's second goal.
"Especially in the position we're in," he said. "It would be easy to get down and go in a different direction, but the guys fought the whole night."
Eichel scored into an empty net with 33 seconds left to ice it.
The Avalanche's poor homestand is similar to one that started their slide last year. They were 9-9-0 on Nov. 21, 2016, but an 0-4-1 homestand started a 4-24-2 stretch.
MacKinnon bristled at the comparison to last season.
"It's a new season, it's a new team," he said. "What does it have to do with last year?"
The Sabres scored first when Ryan O'Reilly, who had two assists, stole the puck on a Colorado power play and fed Pouliot for his seventh goal of the season at 5:32 of the second period.
MacKinnon tied it at 1-1 when he scored on Colorado' fourth power-play chance on a shot to the short side at 12:22 of the second.
NOTES: Buffalo C Scott Wilson had 14:19 of ice time a day after coming to the Sabres in a trade with the Detroit Red Wings. ... Colorado LW Gabriel Landeskog served the last contest of his four-game suspension for his crosscheck of Calgary's Matthew Tkachuk on Nov. 25. ... The Sabres waived F Matt Moulson on Monday, and the veteran cleared waivers on Tuesday. He is on loan to the Los Angeles Kings' AHL affiliate. ... Colorado recalled F Rocco Grimaldi from San Antonio of the AHL on Monday. It is his second call-up of the season.