Saunders was called on again minutes later to deny Dilly Duka as Piatti teed up the midfielder on the edge of the box, but the keeper made the stop.
The home side were to rue their missed chances as City took the lead in the 34th minute when Villa collected a pass from Patrick Mullins and drilled a low effort into the bottom corner with his left foot.
In the second half, Romero broke through up the middle for the Impact and had the chance to slot the ball past Saunders, but the keeper made another fine stop.
Montreal earned the chance to get back in the game when Thomas McNamara handled the ball in the penalty area and a spot kick was awarded. Piatti took the spot kick and fired the ball past Saunders.
However, the home side's joy was short-lived as New York regained the lead in the 84th minute when Ambroise Oyongo gave away a free kick on the edge of the box, and Villa made no mistake curling his effort beyond the reach of Evan Bush.
The Impact made a late push to get back into the game, but the visitors held out for the three points.