Se localiza en el norte del Estado, en las coordenadas 20º09" de latitud norte y en los 101º43" de longitud oeste, a una altura de 1,702 metros sobre el nivel del mar. Limita al norte con Penjamillo y el Estado de Guanajuato, al este con Sixto Verduzco y Puruándiro, al sur con Panindícuaro y al oeste con Penjamillo. Su distancia a la capital del Estado es de 133 km.
Su superficie es de 240.25 km2 y representa el 0.39 por ciento del Estado.
Su relieve lo constituyen los cerros Blanco, Chongo, Los Reyes, Bola y Guayabo. El municipio se ubica en las estribaciones septrionales del sistema volcánico transversal.
La hidrografía la constituyen los ríos Lerma y Angulo, el arroyo Atarjea y las presas Rosario y Melchor Ocampo.
Su clima es templado con lluvias en verano, tiene una precipitación pluvial, anual de 780.5 milímetros y temperaturas que oscilan de 1.0 a 37.8 grados centígrados.
El municipio domina la pradera, con nopal, pastizal, huisache y matorrales diversos. Su fauna principalmente, comadreja, conejo, ardilla, cacomiztle, zorrillo, tejón, tórtola y pato.
La superficie forestal de maderables es ocupada por encino, en el caso de la no maderable, por arbustos de distintas especies.
Los suelos del municipio datan de los periodos cenozoico, cuaternario y plioceno, corresponden principalmente a los de tipo cheynozen. Su uso es primordialmente agrícola y en menor proporción ganadero y forestal.