Alexis Lafreniere had two assists for the Rangers (11-8-1), who bounced back from a 3-1 loss at the Edmonton Oilers on Monday.
Joonas Korpisalo made 30 saves to record his second straight win since being activated off injured reserve on Nov. 6 after playing one game for Hartford of the American Hockey League on a conditioning stint for a lower-body injury.
Adam Klapka scored for the Flames (8-10-1), who finished their three-game homestand 1-1-1. Devin Cooley made 21 saves.
After losing his stick, Korpisalo scrambled to make a save with the open hand of his blocker at 3:41 of the first period to stop a wraparound attempt by Zayne Parekh. From his position on the right point, Parekh skated past Eeli Tolvanen before deking around Glenn Gawdin to set up his opportunity.
Zibanejad scored 59 seconds into the second period to make it 1-0 when his pass attempt from behind the goal line went off the back of Cooley’s right leg and in.
On the power play, Zibanejad extended New York’s lead to 2-0, taking a cross-ice pass from Pavel Dorofeyev and one-timing a shot just above the left face-off dot under Cooley’s left arm. Zibanejad has a four-game point streak (two goals, four assists).
Klapka scored a power-play goal at 7:41 of the third period to make it 2-1. Ryan Strome took a pass from Yegor Sharangovich below the goal line and quickly sent the puck out front of the net to Klapka, who tapped it through Korpisalo’s legs.
Tye Kartye scored into the empty net at 19:53 for the 3-1 final.