The hosts looked set for a draw after Jordan Harvey had cancelled out Greg Klazura's own goal in the second half, but Jamison Olave's late red card gave the away side the initiative which they took through Kenny Miller.
Juninho then missed with a couple of long-range efforts before Jonathan Steele's volley was tipped over the bar just before half time.
Ten minutes into the second half Klazura diverted a cross into this own net, injuring himself in the process, to give New York the lead.
Their lead didn't last very long, though, as Harvey blasted the ball into the roof of the net after it fell to him in the middle of the area from a corner.
Steele and Henry both missed with efforts from outside the box after that, as the hosts failed to get behind their opponents' defence.
With 15 minutes to go Olave was shown his second yellow card for a late tackle on Miller and the visitors made the advantage count, as he headed Russell Teibert's cross into the bottom corner with five minutes to go.
Henry had one final chance in the last minute but dragged his shot wide from the edge of the box, as Vancouver took all three points against the Eastern Conference leaders.