Limita al norte con el estado de Tlaxcala, al sur con los municipios de Amozoc y Acajete, al oriente con Acajete y al poniente con Amozoc y el municipio de Puebla. Tiene una superficie de 69.39 kilómetros cuadrados.