Romell Quioto's 73rd-minute goal broke a 1-1 tie and proved the winner for Montreal (5-3-4, 19 points).
It was only the second time New York City has lost to Montreal in 13 matches all-time (7-2-4).
Montreal had the early jump in this one and thought they had a quick strike when Quioto's right-wing shot found the back of the net in the first minute. However, the play was ruled offside.
The visitors started to find their legs as the half progressed, spending more time in the attacking third but unable to beat goalkeeper James Pantemis. In the 15th minute, he came far out of his net to smother a loose ball before New York could get a foot on it, and in the 25th minute, a Maximiliano Moralez attempt was stopped by Pantemis.
New York finally broke through in the 29th minute. Forward Ismael Tajouri-Shradi evaded Montreal defender Zorhan Bassong down low before spotting Parks at the top of the box to make it 1-0.
It was the first time since the season opener that Montreal allowed a goal in the first half.
On Quioto's decisive goal, Barraza came far out of the net to play the ball but Quioto got his foot on it first. Quioto rolled it past the goalie from the right edge into the wide0open cage.
New York City midfielder Santiago Rodriguez missed the match due to MLS health and safety protocols.