Su término municipal limita al norte con los de Malcocinado y Azuaga, en la provincia de Badajoz, al este con Hornachuelos, en la provincia de Córdoba, al sur con los municipios sevillanos de Las Navas de la Concepción, Cazalla de la Sierra y San Nicolás del Puerto y al oeste con el de Guadalcanal.