La commune est composée de deux bourgs distants d'environ 3 kilomètres : Moulins-sur-Yèvre et Maubranche.
Elle est située à la périphérie de l'agglomération de Bourges, à 12 kilomètres du centre ville.
Traversée par deux axes de communication importants : la RN 51 Poitiers-Avallon et la voie SNCF "Lyon - Nantes".