Ryan Kesler had the only goal of the game for the Canucks, who have dropped their past three games. Eddie Lack gave up all three goals on 31 shots.
New York scored just 4:59 into the game as a scrum in front saw Carcillo eventually jam it in for his fourth of the season.
The Rangers made it a 2-0 game at 14:43 of the first on the power play after a rebound went to the left circle where Derick Brassard fired it over to the right and Pouliot snapped it in.
Vancouver cut its deficit to 2-1 at 6:21 of the second as a right circle faceoff win by Kesler saw Daniel Sedin get the puck, passing it over to the slot where Kesler one-timed it home.
Acquired on March 5 from the Lightning, St. Louis had gone 14 games without a goal, but that streak came to an end halfway through the third with his team shorthanded.
The puck came out of the New York end as Rick Nash picked up the puck and skated down the left wing on a 2-on-1. Nash sent the puck over to the right and St. Louis roofed it in for his 30th goal of the season and a 3-1 lead.