Este municipio limita al norte con el municipio de Celaya, al este con Jerécuaro, al sur con Acámbaro, al oeste con Salvatierra y al noroeste con el municipio de Cortazar. Posee una extensión territorial de 330.66 kilómetros cuadrados y se encuentra a una altura de 1,770 metros sobre el nivel del mar.