Se localiza al noroeste del Estado en las coordenadas 19º57' de latitud norte y 100º10' de longitud oeste, a una altura de 2,490 metros sobre el nivel del mar. Limita al norte con Epitacio Huerta y el Estado de Querétaro, al este con el Estado de México, al sur con Tlalpujahua y Maravatío y al oeste con Maravatío. Su distancia a la capital del Estado es de 126 km.
Su superficie es de 380.74 kms2 y representa el 0.68 por ciento de la superficie del Estado.
Su relieve lo constituyen las estribaciones septentrionales del sistema volcánico transversal y la depresión del Lerma; y los cerros Altamirano, Prieto, Zorrillo, Cerco, Gamboa, Alto y Borrego.
Su hidrografía se constituye por los ríos Lerma, Tlalpujahua y presa Tepuxtepec.
Su clima es templado con lluvias en verano, tiene una precipitación pluvial de 1,168.0 milímetros y temperaturas que oscilan de 8.6 a 22.4º centígrados.
En el municipio domina el bosque mixto, con pino y encino; y la pradera, con huisache, nopal y matorrales diversos. Su fauna la conforman ardilla, zorrillo, comadreja, tlacuache, coyote, cacomixtle y aves como pato, paloma torcaz, gallina montés y especies de pez, como la carpa.
La superficie de maderables es ocupada por el pino y encino, y en el caso de la no maderable, por arbustos de distintas especies.
Los suelos del municipio datan de los periodos cenozoico y cuaternario, corresponden principalmente a los del tipo podzólico y gleysol. Su uso es primordialmente agrícola y en menor proporción ganadero y forestal.