NEW YORK -- Carter Hutton made 37 saves, and the Buffalo Sabres hung on for a 3-2 win against the New York Rangers at Madison Square Garden on Friday.
Mika Zibanejad and Chris Kreider scored for the Rangers in the final three minutes, but Hutton made one more save to preserve the win.
Jimmy Vesey had a goal and an assist, Zemgus Girgensons and Sam Reinhart scored, and Jack Eichel had two assists for the Sabres (24-23-8), who had lost five of six but are nine points behind the Toronto Maple Leafs for third place in the Atlantic Division.
"I think we'd like to play a little tighter there when it's 3-0, but it is what it is," Hutton said. "At this point we've just got to win games and that's what we did tonight."
[WATCH: All Sabres vs. Rangers highlights]
Alexandar Georgiev made 25 saves for the Rangers (26-23-4), who are 5-5-0 in their past 10 games. New York is nine points out of the second wild card into the playoffs from the Eastern Conference.
"I'm surprised about tonight," Rangers coach David Quinn said. "I'm going to be honest with you, I didn't see this coming. It's something that I didn't expect. At the end of the day our top players have to be way better than they were tonight."
Girgensons gave Buffalo a 1-0 lead at 10:26 of the first period, capitalizing seconds after a strong shift in the offensive zone that led to an ill-timed change by the Rangers after getting the puck out.
Video: BUF@NYR: Girgensons' nifty opening goal
Colin Miller got the puck back in with the Rangers changing and found Girgensons on the right side. He cut through the right circle, deked to his forehand and beat Georgiev for his 10th goal of the season.
Girgensons joins Eichel (31), Reinhart (20), injured forward Victor Olofsson (16) and forward Jeff Skinner (11) with at least 10 goals for the Sabres.
"He primarily has a defensive role, he's penalty killing for us all the time, but to have him into the double-digit category is a positive," Sabres coach Ralph Krueger said. "We need to get some more guys there in the next few weeks."
Reinhart made it 2-0 at 15:16 of the second period, with the Sabres capitalizing after a long shift in their defensive zone.
Video: BUF@NYR: Reinhart roofs backhand shot
Vesey intercepted Ryan Lindgren's pass from inside the blue line and quickly sent the puck up to Eichel for a 2-on-1 rush with Reinhart. Eichel led Reinhart with a pass that sent him in alone and he scored his 20th goal of the season with a high backhand.
"[Vesey] makes a big play there," Eichel said. "We were in the zone for a while, we were gassed, but we noticed the odd-man rush. They were playing offense, they're obviously tired, and we were able to take advantage of it. It's a big goal in the hockey game for us."
Vesey made it 3-0 at 11:56 of the third period, when Eichel found him with a long stretch pass and he was able to use his backhand to beat Georgiev through his five-hole for his eighth goal of the season and second in as many games.
"He now plays with Jack and Sam instead of trying to give up his game to feed them," Krueger said. "I think more than anything he's really skating right now, adding a lot of speed to that line and profiting offensively, which is nice."
Zibanejad scored at 17:07 to cut it to 3-1, and Kreider scored on the power play at 18:20 for the 3-2 final.
"We just were out of sync," Zibanejad said. "We weren't close for the support. We didn't play fast like we want to. When things are going for us that's how we play. We didn't do close to enough today to be able to win the game."
Video: BUF@NYR: Zibanejad buries feed from Panarin
They said it
"We didn't try to make it an offensive track meet; we tried to bottle up their speed. They're a fast team, they make a lot of plays, so I thought our neutral zone was good and our 'D' did a great job of breaking the puck out with [Hutton]. … We had some opportunistic goals, and when they did have lengthy shifts in our end we were able to find ways to get the puck out. It's a gritty effort." -- Sabres forward Jack Eichel
"We as a group have to be more consistent. It's just not good enough night in, night out. We have good nights and we have OK nights, and tonight wasn't even an OK night. … We played slow." -- Rangers coach David Quinn
Need to know
This was Buffalo's only road game in a 10-game stretch from Jan. 28-Feb. 16. … The Sabres have won three of their past four road games after losing their previous six (0-5-1). … Sabres defenseman Rasmus Dahlin played 15:18 and had three blocked shots in his return after missing two games with an upper-body injury. … The Sabres were playing the second of a back to back. They lost to the Detroit Red Wings 4-3 in a shootout on Thursday. … Kreider has seven points (four goals, three assists) in a five-game point streak. … Zibanejad has 10 points (four goals, six assists) in the past six games.
Sabres: Host the Anaheim Ducks on Sunday (3 p.m. ET; TVAS, MSG-B, PRIME, NHL.TV)
Rangers: Host the Los Angeles Kings on Sunday (6 p.m. ET; ESPN+, MSG+, FS-W, NHL.TV)
Video: Reinhart, Sabres hold off Rangers