Villa scored as City beat Union 3-1 at Yankee Stadium, moving into an Eastern Conference semi-final against Atlanta United.
The host struck first in the 10th minute, Ismael Tajouri producing a stunning finish from 20 yards.
Villa found the bottom corner to double the lead in the 26th minute as City took control.
Maximiliano Moralez's lobbed finish sealed City's win with 12 minutes remaining, despite Cory Burke's tap in for Union.
In the Western Conference, the Timbers set up a meeting with Sporting Kansas City after a 2-1 win over Dallas.
Diego Valeri opened the scoring for Portland with a fine 25-yard free-kick midway through the first half.
However, their task was made difficult approaching the hour-mark, when Larrys Mabiala was sent off.
But Valeri doubled the Timbers' lead in the 71st minute and they held on despite Matt Hedges' late goal for Dallas.