Sean Johnson made four saves to preserve his second career playoff clean sheet, and his first since 2017, with all of his saves coming after the hosts took a two-goal lead.
Maximiliano Moralez, NYCFC's 34-year-old captain, played a role on both New York City FC goals.
- Predict results in ESPN's Soccer Playoff Pick 'Em!
- ESPN+ viewers guide: LaLiga, Bundesliga, MLS, FA Cup, more
- Stream ESPN FC Daily on ESPN+ (U.S. only)
-Don't have ESPN? Get instant access
On the first, his long looping cross from the right fell to the back post for Castellanos, who struck a first-time volley into the ground. Castellanos did not connect as he intended, but the ball bounded hard off the turf, over Atlanta goalkeeper Brad Guzan and into the net.
Guzan made an excellent diving stop to deny Moralez from distance four minutes later. But after pushing the ball onto the post, Callens was there to head the rebound into an open goal from close range.
Four seed NYCFC will visit Eastern Conference top seed and Supporters' Shield winners New England Revolution in a conference semifinal on Nov. 30.
Alexander Callens doubles NYCFC's tally over Atlanta United
Alexander Callens heads the ball into the net to increase New York City FC's lead to 2-0 over Atlanta United.
Valentín Castellanos cashes in to put NYCFC up
Valentín Castellanos scores off a cross to give New York City FC a 1-0 lead over Atlanta United in the second half.