Magno scored in the ninth minute and Castellanos in the 57th for NYCFC (5-3-2, 17 points), which has four wins and a tie in the past five games.
- MLS on ESPN+: Stream LIVE games, replays (U.S. only)
- Don't have ESPN? Get instant access
Sean Johnson did not have to make a save as New York City recorded three consecutive shutouts for the first time since four straight in 2018.
The Crew (3-4-4, 13 points) had their three-game unbeaten streak (1-0-2) end.
The matchup was the first of the season between MLS Cup defending champions NYCFC and the 2020 titleholder.
After the Crew had several early set piece looks, New York City responded for the opening goal on Magno's second goal of the season.
Santiago Rodriguez earned his fifth assist with a short pass to Magno at the top of the box and the Brazilian midfielder did the rest.
Early in the second half, Magno twice sent crosses that Castellanos headed, with the first sailing over the bar while the other resulted in a swiping right-handed save by Room.
Castellanos didn't miss the next opportunity. He took a ball from Maxi Moralez in the center circle for a breakaway, scoring with a chip shot over the charging Room. Castellanos has a team-high six goals.
The closest Columbus came to scoring was Lucas Zelarayan barely missing a free kick to the upper left corner in the 85th minute. He scored three free-kick goals vs. NYCFC last season.
The Crew's road woes continue. They are 0-2-4 this season and 3-17-15 in the past 35 away matches.
New York City is 7-1-1 in the past nine home matches vs. the Crew, including the playoffs.