W tym momencie dla Meksykanów stało się jasne, że głównym celem kampanii nie jest odzyskanie długów, ale przejęcie kontroli nad Meksykiem.

Bitwa thumb|left|Schemat fortyfikacji pod Pueblą Drogi do Puebli chroniły forty Loreto oraz Guadalupe. Generał Zaragoza wydał swoim oddziałom rozkaz wykopania rowów obronnych wzdłuż drogi prowadzącej do Puebla i połączenie nimi obu fortów. Atutem Meksykanów były fatalne warunki pogodowe. Gwałtowne deszcze zamieniły ziemię w błoto, które znacznie utrudniało poruszanie się francuskiej artylerii.

Generał Laurencez był przekonany, że Meksykanie będą starali się uniknąć walnej bitwy i w popłochu opuszczą miejsca obronne. Koło południa francuski dowódca dał sygnał do ataku. Meksykanie utrzymali swoje pozycje i odepchnęli Francuzów. Po przegrupowaniu swoich wojsk Francuzi spróbowali ponownego ataku. I tym razem atak załamał się, a atakujący zmuszeni byli się wycofać.

W końcu uzbrojeni w przeważającej części w maczety Meksykanie, pod wodzą Zacapoaxtli, wsparci Indianami z plemienia Xochiapulco rozpoczęli kontratak. Ze skrzydeł na Francuzów uderzyła dobrze zorganizowana i zdyscyplinowana kawaleria pod wodzą Porfirio Díaza (późniejszego prezydenta Meksyku). Około 16:30 bitwa dobiegła końca.