Chris Kreider had a goal and two assists, and Marc Staal scored for the Rangers (16-14-7), who ended a three-game losing streak (0-1-2). Henrik Lundqvist made 34 saves.
"It's obviously nice to be able to contribute offensively," Zibanejad said. "Having the role I have, I'm going against those top guys all the time. It's fun, but I think the best way to keep them out of our zone is to keep the puck in theirs. The guys I'm playing with are doing an unbelievable job of holding on to pucks."
WATCH: [All Rangers vs. Predators highlights]
Nick Bonino scored two goals, and Kevin Fiala had a goal and two assists for the Predators (22-15-2), who are 0-5-1 in their past six games. Pekka Rinne made 18 saves.
"We've just got to keep putting our foot down on the gas here," Predators coach Peter Laviolette said. "Again, there was good things that we did tonight. I don't like the fact that we had a lead going into the third period and we let it get away. That's usually where we're at our strongest."
Fast returned to the lineup after missing five games because of an upper-body injury.
"We were more competitive, we were more passionate, and obviously [Fast] gets rewarded statistically," Rangers coach David Quinn said. "As I said before the game, there's a reason we put that line together. [Zibanejad] played his best hockey with [Fast and Kreider], and they were obviously our best line tonight and our most effective line tonight."