NEW YORK -- Michael Grabner scored a goal and an assist in the third period and Henrik Lundqvist made 29 saves to help the New York Rangers to a 4-3 win against the Calgary Flames at Madison Square Garden on Sunday.
Rick Nash, Chris Kreider and Jesper Fast scored and Alain Vigneault got his 599th NHL career win for the Rangers (33-18-1), who won for the second time in their past six home games.
"Obviously there's no better feeling than to win in front of your own fans," Lundqvist said. "They never gave up and they're a good team. They've been winning lately here and have a lot of confidence, but we came out in the third and it looked like we made up our mind that we wanted these two points."
WATCH: All Flames vs. Rangers highlights
The game was tied heading into the third period before Grabner scored his 23rd goal of the season at 1:54 for a 2-1 lead, which lasted less than three minutes. Troy Brouwer made it 2-2 at 4:40 off a nice passing play from Johnny Gaudreau and Sean Monahan.
Kreider skated into the zone and took a wrist shot from just outside of the left circle for his 21st goal of the season at 8:20 of the third to make it 3-2.
Fast scored at 11:32 of the third to give the Rangers a 4-2 lead, on what turned out to be the game-winning goal. He also blocked a shot in the final seconds to preserve the win.
"There's not much he can't do," J.T. Miller said. "For him to come up with the game-winner and then make a big block, it's pretty fitting for him."
Dougie Hamilton and Matthew Tkachuk also scored for Calgary (27-25-3), which had won three straight.
Video: CGY@NYR: Grabner finishes give-and-go with Skjei
"They sting and obviously we need points, but this was a really good hockey game today," Flames coach Glen Gulutzan said. "It could have went either way and I think we deserved to get some points out of this building."
The Flames took a 1-0 lead when Hamilton scored a power-play goal 6:59 into the game.
Nash made it 1-1 with a power-play goal at 8:54 of the first period when he collected a rebound off a shot from Derek Stepan that Flames goalie Brian Elliott couldn't control.
Nash just missed scoring his second of the game when his shot went past Elliott, but the puck did not fully cross the goal line before the second period expired. The Rangers responded with three goals in the third period.
"I thought we came to play in the third, we had a great start," Miller said. "For us to pull out a win at home right now is big. It's a big two points and we are going to enjoy it."
Tkachuk capitalized on a turnover by Rangers defenseman Dan Girardi to make it 4-3 with 7:27 remaining.
Elliott made 28 saves.
Video: CGY@NYR: Kreider picks the corner with wicked wrister
Goal of the game
Brouwer tied up Rangers defenseman Brady Skjei, allowing Monahan to get the puck and skate into the zone. Monahan passed to Gaudreau, who found Brouwer at the side of the net for the easy tap-in.
Video: CGY@NYR: Brouwer slots home fortunate deflection
Save of the game
Elliott denied Grabner at 5:45 of the second period at the side of the net after Miller threw the puck in front from behind the net. The save kept the game tied 1-1.
Video: CGY@NYR: Elliott keeps game tied with strong saves
Unsung performance of the game
Fast blocked Flames defenseman Mark Giordano's shot with two seconds left and cleared the puck.
"He makes a lot of good plays out there that I don't think he gets credit for, but I definitely see the way he is around the blue lines, the critical plays," Lundqvist said. "Very important player to have on your team."
Video: CGY@NYR: Fast buries Miller's feed from one knee
Highlight of the game
Lundqvist made 12 saves in the first period, including four in a 22-second span. He stopped Kris Versteeg and Alex Chiasson's deflection before later denying Versteeg again and Sam Bennett from in close.
Video: CGY@NYR: Lundqvist denies Chiasson's pair of chances
They said it
"We had a good push in the end there, we were trying to get that tying goal. We just didn't get it." -- Flames forward Mikael Backlund
"We want to get a win in any fashion and start this homestand off on the right foot. [We wanted to] back up that [2-1 overtime] road win [against the Buffalo Sabres on Thursday] where we played pretty well defensively. It was good to see us find a way." -- Rangers captain Ryan McDonagh
Need to know
New York is 16-5-0 against Western Conference opponents this season. ... Ryan McDonagh assisted on Nash's goal for the 200th point of his NHL career. ... Mika Zibanejad got his 100th NHL career assist on Kreider's goal. ... Kevin Hayes (lower body) missed his fifth straight game, but could return Tuesday. ... Tkachuk (goal, assist) had his seventh multi-point game of the season.
Flames: At the Pittsburgh Penguins on Tuesday (7 p.m. ET; TVA Sports, ROOT, SNW, NHL.TV)
Rangers: Host the Anaheim Ducks on Tuesday (7 p.m. ET; SNO, MSG, PRIME, NHL.TV)