J.T. Miller had a goal and an assist, and Elias Pettersson had two assists for the Canucks (31-21-5), who were 0-3-1 in their previous four games, including three straight losses in regulation. Jacob Markstrom made 36 saves.
"We were ready to go for this game," Miller said. "We did a lot of talking lately, and I think we needed to kind of get out there and play our game and get back to having a good start and put our best foot forward. Obviously, we had a good first period and kind of set the tone right there."
WATCH: [All Predators vs. Canucks highlights]
The Predators (26-22-7), who fell behind 4-0 early in the second period, lost two in a row to end their four-game road trip to Western Canada and Winnipeg 2-2-0.
"These are big games, but to have no emotion in the first period and playing the game at the hardness you need to play with this time of year is something that we got to figure out why," Nashville coach John Hynes said. "I still believe that comes down to mindset. Why was our mindset not right to start the game?"
The Canucks were without right wing Brock Boeser for the first of at least two games because of an upper-body injury.
Rookie Zack MacEwen, playing on a new top line in Boeser's place with center Bo Horvat and Miller, put Vancouver ahead 1-0 at 7:06 of the first period when he finished a give-and-go with Miller for his second NHL goal.
"The building was buzzing," MacEwen said of a pregame ceremony to honor the four Canucks whose numbers are retired (Pavel Bure, 10; Stan Smyl, 12; Trevor Linden, 16; and Markus Naslund, 19). "It was great to have lots of energy to start the game and to come out with a win, and it's a really good feeling."