Myers took a pass from Bo Horvat at the point and scored with a high wrist shot through traffic and over the blocker of Rangers goalie Alexandar Georgiev.
"You just have to get it there and see what happens," Myers said. "When we have a good net-front like that it makes it tough for the goalie. You could tell the goalie had trouble seeing it. It was a big two points for us. It keeps this momentum going."
WATCH: [All Rangers vs. Canucks highlights]
Jacob Markstrom made 36 saves for his sixth straight win for the Canucks (23-15-4), who have outscored opponents 30-17 during the longest active winning streak in the NHL. It's the first time that Vancouver has won seven in a row since Dec. 1-14, 2013.
"To the end we were fighting," said Markstrom, who made 14 saves in the third period. "They were pushing and we were fighting back. I said before the [Christmas] break you have to keep the train rolling. We have to keep going. You don't want to have long times of losing games, you want to string games together, and we're doing that right now."
Pavel Buchnevich scored for the Rangers (19-18-4), who lost all three games on a western Canada road trip and are (3-6-1) in their past 10 games.
"We played a solid road game and it was just unfortunate that they get that one late because it felt like we were really tilting the ice in the third," Rangers forward Chris Kreider said.
Georgiev, starting because Henrik Lundqvist was ill, made 25 saves.
"I certainly love a lot about our game tonight," Rangers coach David Quinn said. "We did almost everything right except score and it's really disappointing. It really was a kick in the gut to have that one shot go in and to play as well as we did in the third and give that up late, but hey, we've got to fight through some adversity and we can draw from this game to understand what we have to do to have success."
Antoine Roussel scored 1:46 into the first period to put the Canucks ahead 1-0. Georgiev stopped a deflection in tight but poked the rebound to Roussel below the hash marks.