- MLS on ESPN+: Stream LIVE games, replays (U.S. only)
- Soccer on ESPN+: FC Daily | Futbol Americas
- Don't have ESPN? Get instant access
Gabriel Pereira scored for NYCFC (12-5-6, 42 points), which had a seven-match unbeaten streak snapped.
With the score tied at 2-2 in the 75th minute, Zelarayan's free kick from 25 yards out was blocked by the NYCFC wall of defenders. But the Crew maintained possession and fed the ball out wide to Diaz on the right wing. Diaz's cross was deflected and fell to Zelarayan just outside the top of the 6-yard box. His half-volley screamed into the far side netting for the winner.
The visitors opened the scoring in the third minute. Malte Amundsen's cross from the left wing deflected off Crew defender Jonathan Mensah, with the ball sailing over Room's head on its way into the net.
Columbus tied the score in the 20th minute. Zelarayan made a pass to Diaz near the top right of the 18-yard box and he quickly fed Hernandez, who got a step on a defender and put a low, 12-yard shot into the far side netting.
Columbus took the lead in the 27th minute off a rare miscue by New York's All-Star goalie, Sean Johnson. His free kick from just outside the 6-yard box was intercepted by Diaz at the edge of the penalty area. Diaz made a diagonal pass to Zelarayan, who chipped the ball into the upper left corner of the net from 18 yards out.
Room made a sprawling kick save on a close-range shot by Pereira in the 36th minute and a diving save at the right post in the 55th on Nicolas Acevedo to help preserve the lead.
Johnson made three saves for NYCFC.