La commune de Marnay est située en Poitou-Charentes, dans le département de la Vienne, à une vingtaine de kilomètres au sud de Poitiers et à mi-chemin entre Gençay et Vivonne.
Elle dépend du canton de Vivonne. La rivière La Clouère traverse la commune sur environ 12 kilomètres.
Sa superficie est de 4 510 hectares pour 686 habitants, les Marnaisiens et les Marnaisiennes.