Rosnay liegt im Regionalen Naturpark Brenne (frz.: Parc naturel régional de la Brenne), etwa 35 Kilometer von Châteauroux entfernt, und beherbergt dessen Verwaltung. An der nördlichen Gemeindegrenze verläuft der Fluss Cinq Bondes. Ortsteile von Rosnay sind: La Chaume, Le Coudreau, La Collarderie, La Vignauderie und La Gilardière. Nachbargemeinden von Rosnay sind Saint-Michel-en-Brenne im Norden, Migné im Osten, Ciron im Südosten, Ruffec im Süden, Le Blanc im Südwesten, Douadic im Westen und Lingé im Nordwesten.