Martin Kaut scored his first NHL goal and Pavel Francouz made 31 saves for the Avalanche (37-18-7), who played without starting goalie Philipp Grubauer (lower-body injury) and forwards Mikko Rantanen (upper body), Andre Burakovsky (upper body), Nazem Kadri (lower body), and Matt Calvert (lower body).
"We're just trying to play complete games with all the guys that are out of the lineup," Compher said. "We're trying to make sure that we're sound defensively, tracking well, and I think we've done a pretty good job of that."
WATCH: [All Sabres vs. Avalanche highlights]
Compher, who also had an assist, scored with a shot from the slot off a pass from Joonas Donskoi.
"(Tyson) Jost did a great job on the wall, and it was a great pass by (Donskoi) to be backdoor," Compher said.
Curtis Lazar and Zemgus Girgensons scored and Carter Hutton made 31 saves for the Sabres (29-26-8), who won five of their previous six games. They are sixth in the Atlantic Division and remained 10 points behind the Columbus Blue Jackets for the second wild card into the Stanley Cup Playoffs from the Eastern Conference.
"It was a really good hockey game," Buffalo coach Ralph Krueger said. "If this was the fifth game of the season, you'd be quite happy right now; it's just that all that matters to us right now are results. Take the score out of it, it was a (heck) of a hockey game. Two good goalies, lots of opportunity there."