Située à 36 km au sud-est de Poitiers, Lussac-les-Châteaux est traversée par la Vienne, à l’ouest de la ville, qui sépare Lussac de sa voisine immédiate Mazerolles.
Lussac-les-Châteaux est située à 11 km au sud-ouest de Montmorillon, la plus grande ville des environs.
La commune est proche du parc naturel régional de la Brenne.