Bo Horvat, Brock Boeser and Jay Beagle scored for the Canucks (5-3-0), who lost 1-0 to the New Jersey Devils at Prudential Center on Saturday, ending a four-game winning streak. Horvat's goal was his 100th in the NHL.
Elias Pettersson had two assists for the Canucks, who outshot the Rangers 37-23 in the first two periods.
WATCH: [All Canucks vs. Rangers highlights]
"Probably the best two periods of hockey that we've had in, man, I can't remember, maybe since I've been here, really," Canucks coach Travis Green said. "We felt like it should have been six or 7-1 after two."
Markstrom made 16 saves in the third period, when the Rangers had a 17-6 advantage in shots on goal.
It was Markstrom's first game since Oct. 12. He left the Canucks to return home to Sweden for personal reasons last week. He missed two games then returned Friday in time to be the backup to Thatcher Demko in New Jersey on Saturday.
"He's had a tough week," Green said. "To see how he played [Sunday], it's good for him, it's good for our team. That's a moment. I know he hasn't talked about his past week, but he's had a hard week. You feel for a guy like that that competes the way he does and loves to win and is a real warrior for our team. We were a little nervous putting him in, he hadn't had a lot of time on the ice. Happy for him."