Toronto rebounded after a loss on Wednesday and is now 2-1-4 in its past seven matches.
New York extended its unbeaten streak to five games (3-0-2).
Slow starts and first-half struggles continued to plague Toronto. Minutes after New York City nearly opened the scoring when a shot sailed through the box from left to right, the visitors finally connected.
New York maintained possession in the attacking third after blocking a Toronto clearing attempt and Santiago Rodriguez got his foot on a bouncing ball from above the goalmouth to give his club a 1-0 lead in the 12th minute.
It was the 10th goal Toronto has allowed this season in the opening 15 minutes.
Ismael Tajouri-Shradi scored for the seventh time in his last 11 games to make it 2-0 New York in the 21st minute. After New York intercepted a Toronto pass attempt, Tajouri-Shradi took a feed from Valentin Castellanos and went through the legs of goalkeeper Alex Bono.
Rodriguez nearly had his second of the match in the 29th minute but his shot from above the box hit the crossbar and sailed over the net.
Toronto came out energized in the second half and was rewarded for it in the 49th minute. Alejandro Pozuelo, in his first game back after missing the previous two due to injury, found a seam to get the ball to Richie Laryea to cut it to 2-1.
Pozuelo tied it 2-2 in the 55th minute on an easy tap-in off a cross from Ifunanyachi Achara.
Each side had a chance to take the lead just moments apart. In the 73rd minute, Yeferson Soteldo's cross attempt to Jonathan Osorio, who had an open side, was blocked and a minute later, Tajour-Shradi aimed for the top left corner only to see the ball veer left of the net.