Ubicado en la región oeste de la entidad, colinda al norte con el municipio de Tecpatán, al oeste con el Estado de Oaxaca, al este con los municipios de Jiquipilas y Ocozocoautla de Espinosa, y al sur con el municipio de Arriaga. Posee una extensión territorial de 2,404.6 kilómetros cuadrados.