Brad Richardson also scored for Vancouver, which has won three of four.
Colin Wilson scored for Nashville, losers of three straight.
Richardson scored the game's first goal at 15:24 of the second period.
From the goal line to the right of the Nashville net, Richardson passed to Dale Weise in the right circle. Weise's shot was stopped by Nashville goalie Marek Mazanec, but the rebound came right to Richardson, and he banked in a shot off of Mazanec's left leg pad.
On the same day he was named the NHL's Rookie of the Month for November, Mazanec made his 11th straight start in goal for the Predators.
Wilson answered back just 30 seconds after Richardson's goal.
Skating through the slot, Patric Hornqvist slid a nice pass to Wilson on the right post. From there, Wilson had an easy tap-in past Vancouver goaltender Roberto Luongo for his fifth goal of the season.
Wilson has scored in consecutive games for the first time this season.
After missing three games with an upper-body injury, Hornqvist has an assist in each of his last two games.
In the third, Kesler scored his first at 7:37.
He struck again at 14:15.
With the Canucks on a power play, Kesler collected the rebound of another shot by Garrison in the low slot and backhanded it past Mazanec.
Kesler has four goals in his last two games.
NOTES: Nashville D Shea Weber missed his second consecutive game with an eye injury. The team lists him as day to day. The Predators had not allowed a power-play goal against in their previous eight games. Vancouver concluded a four-game road trip and now heads home for their next five games.