Se localiza en la parte noreste del estado, en las coordenadas 97°28' longitud oeste, 17°40' latitud norte y a una altura de 2,110 metros sobre el nivel del mar. Limita al norte con San Antonio Acutla y San Miguel Tulancingo; al sur con San Pedro Yucunama y San Juan Teposcolula; al oriente con Santo Domingo Tonaltepec, Santa María Nativitas y San Miguel Tulancingo; al poniente con Villa de Tamazulapan del Progreso. La superficie total del municipio es de 141.97 km².