Die Gemeinde Villacourt liegt im Süden des Départements Meurthe-et-Moselle, an der Grenze zum Département Vosges, drei Kilometer südöstlich der Kleinstadt Bayon. Ein Bergrücken trennt Villacourt von der 2,5 Kilometer westlich des Dorfes fließenden Mosel.