Vincent Trocheck also had a goal and an assist for the Hurricanes, who regained their scoring touch after being shut out for the first time this season two nights earlier.
"We knew we needed to have a bounce-back game, a bounce-back effort," coach Rod Brind'Amour said. "That's the way we need to play."
Sebastian Aho and Steven Lorentz had the other Carolina goals and Andrei Svechnikov posted two assists. Frederik Andersen made 30 saves.
The Hurricanes found a way to erase thoughts of their 6-0 loss to Columbus.
"We don't want to let this happen for two games in a row," Necas said.
Bo Horvat scored in the first period for Vancouver, which has lost the first three games of a five-game trip. Thatcher Demko stopped 29 shots.
"I thought we did deserve a little bit better," Horvat said. "I didn't think we were too far off, personally, but obviously we weren't good enough to win."
Aho opened the scoring with his team-leading 16th goal. It was his first tally in more than a month because he missed three games and then hadn't scored in five games since returning.
"It has been a while for us to find a good start in a game," Svechnikov said. "The effort was there and that's why it was a success."
Trocheck's first goal in seven games gave the Hurricanes a 2-1 lead just over a minute into the second period.
Necas produced his goal by coming down the right side and firing the puck past Demko. It gave Carolina 3-1 lead less than five minutes into the second period and was his 100th career point.
Since the franchise relocated from Connecticut for the 1997-98 season, seven Hurricanes have posted multi-point games on their birthdays.
"If you play hard, you get some chances to show our skill," Necas said.
In their first game since allowing more than four goals for just the second time this season, the Hurricanes were attentive.
"They come at you in waves," Horvat said. "They seem to be on top of you all the time."
That was what the Hurricanes needed.
"It was a much better rhythm and flow even though we took a ton of penalties," Brind'Amour said. "I thought the guys were able to stay engaged and just keep our game the most part and there weren't any lulls in how we played."
The Hurricanes were 5-for-5 on penalty killing. That stretches the string of successful kills of opposing power plays to 35 for the third-longest streak in franchise history, just one shot of the record that has been accomplished twice.
"Those guys are taking pride in how they go about their business," Brind'Amour said. "The penalty kill for me is hard work."
Carolina killed off three penalties in the first period. Meanwhile, the Canucks are combined 0-for-12 on power plays in their last three games.
"The more they kill, the stronger they get," Canucks coach Bruce Boudreau said of the Hurricanes. "It just builds up with them."
COMING AND GOING
Hurricanes left winger Jordan Martinook was back from an injury, playing for the first time since Dec. 2.
Carolina had defenseman Joey Keane in the lineup for the first time this season. It was his second career NHL game. Defenseman Jaccob Slavin missed his second game this week because he's in the COVID-19 protocol.
Before the game, Canucks backup goalie Jaroslav Halak was placed on the COVID-19 list. Spencer Martin was added to the active roster from the taxi squad.
The Canucks had planned to start Halak.
"It sort of throws off all your prep, planning and all of those things," Boudreau said.
Brind'Amour had good vibes right before the drop of the puck when fans came to the rescue.
Teenager Gabriella Maino struggled during the latter part of the Canadian national anthem.
"What I really liked, during the national anthem when the young girl kind of had her little problem with the Canadian national anthem and the whole crowd helped her out to finish it," Brind'Amour said. "I was like, 'That's impressive.' Good job for the people that were here. That set the tone for the day for me."
Canucks: At Washington on Sunday.
Hurricanes: At Boston on Tuesday night.
Lorentz pushes Hurricanes' lead to 3 goals vs. Canucks
Steven Lorentz redirects the puck past the goalie to give the Hurricanes a 4-1 lead.