El combate ocurrió cerca de la ciudad de Puebla, entonces paso estratégico hacia la capital del país. Francia, Inglaterra y España habían enviado fuerzas tras la suspensión del pago de la deuda externa decretada por Benito Juárez; después, España e Inglaterra se retiraron de las negociaciones, mientras Francia continuó su avance. Francia siguió su ofensiva militar hacia Puebla.
Zaragoza organizó la defensa mexicana con tropas del Ejército de Oriente. La relación de fuerzas publicada en la fuente registra 3 mil 791 efectivos mexicanos frente a 6 mil 500 franceses. Entre los mandos mexicanos estuvieron Miguel Negrete, Porfirio Díaz, Felipe Berriozábal y Francisco Lamadrid; del lado francés dirigió Charles Ferdinand Latrille, conde de Lorencez.
El ataque francés se concentró en los fuertes de Loreto y Guadalupe, ubicados en el cerro de Acueyametepec, al norte de la ciudad. Las fuerzas mexicanas rechazaron los asaltos y el ejército francés se replegó. El recuento citado reporta 83 mexicanos muertos, 132 heridos y 12 desaparecidos; para Francia, 200 muertos o desaparecidos, 304 heridos y 35 prisioneros. La defensa sostuvo los fuertes durante la jornada.
La victoria no terminó la intervención. Las tropas francesas regresaron al año siguiente con refuerzos, avanzaron hasta Ciudad de México y permitieron el establecimiento del Segundo Imperio mexicano. La retirada francesa ocurrió en 1867. La imagen popular de que la batalla fue librada únicamente por zacapoaxtlas con machetes simplifica una composición militar más amplia; la fuente identifica al 6.º Batallón de Guardia Nacional del Estado de Puebla entre las unidades defensoras. Consulta: 24 de octubre de 2026.