La Guerra de Reforma de 1858 a 1860 había causado una gran angustia en toda la economía de México y los enemigos acérrimos y los conservadores derrotados que aún se oponían al gobierno y esperaban algún tipo de esperanza para su causa. Al tomar posesión como presidente electo en 1861, Benito Juárez se vio obligado a suspender el pago de los intereses de la deuda externa por un periodo de dos años. A finales de octubre de 1861, los diplomáticos de España, Francia y el Reino Unido se reunieron en Londres para formar la Alianza Tripartita, con el objetivo principal de lanzar una invasión aliada de México, y asegurarse de que el gobierno mexicano estaría dispuesto a negociar las condiciones de pago de sus deudas. Sin embargo, los franceses estaban utilizando secretamente la alianza como una fachada para invadir el fracturado país. En diciembre de 1861, las tropas españolas desembarcaron en Veracruz; las británicas y francesas les siguieron a principios de enero. Las fuerzas aliadas ocuparon Veracruz y avanzaron hasta Orizaba. Sin embargo, la Alianza Tripartita se desmoronó a principios de abril de 1862, cuando quedó claro que los franceses querían imponer duras exigencias al gobierno de Juárez y provocar una guerra. Los británicos y los españoles se retiraron tras negociar pacíficamente acuerdos con Juárez, dejando a los franceses marchar solos sobre la ciudad de México. El objetivo de Napoleón III era establecer un régimen mexicano títere en sus primeros intentos de recuperar la gloria del primer Imperio.
La fuerza expedicionaria francesa en ese momento estaba dirigida por el general Charles de Lorencez, un experimentado comandante que había servido en Argelia y en la guerra de Crimea siendo ascendido a general de división. La batalla se produjo por un malentendido del acuerdo francés de retirarse a la costa. Cuando las fuerzas mexicanas vieron a los soldados franceses en marcha, lo tomaron como una señal de que se habían reanudado las hostilidades y se sintieron amenazados. Para aumentar la preocupación, las fuerzas mexicanas fueron informadas de que las negociaciones políticas para la retirada se habían roto. Los mexicanos presentaron una queja vehemente a Lorencez, quien tomó el descaro como un plan para atacar a sus fuerzas. Lorencez decidió retrasar su retirada hacia la costa ocupando en su lugar Orizaba, lo que impidió a los mexicanos poder defender los pasos entre Orizaba y el puerto de desembarco de Veracruz. El comandante general mexicano, Ignacio Zaragoza, veterano de la guerra de Reforma, retrocedió hasta el paso de Acultzingo, donde él y su ejército fueron derrotados en una escaramuza con las fuerzas de Lorencez el 28 de abril. Zaragoza se retiró a Puebla, que había estado en manos del gobierno mexicano desde la Guerra de Reforma. La ciudad estaba fuertemente fortificada con 5 fuertes que la rodeaban. Al norte se encontraban los dos poderosos fuertes de piedra Loreto y Guadalupe en cimas opuestas. Zaragoza hizo cavar una trinchera para unir los fuertes a través de la silla de montar. Lorencez esperaba encontrarse con las fuerzas de los conservadores mexicanos que habían prometido ayudar a su campaña, pero no había ni rastro de ellos. Sin saberlo, Zaragoza ya había enviado una fuerza para evitar su interrupción en la batalla que se avecinaba. También se le hizo creer que el pueblo de Puebla era amistoso con los franceses, y que la guarnición mexicana que mantenía al pueblo a raya sería arrollada por la población una vez que él hiciera una demostración de fuerza. Esto resultaría ser un grave error de cálculo por parte de Lorencez.
El ejército francés estaba formado principalmente por zuavos, una infantería ligera altamente cualificada formada inicialmente por miembros de tribus de la Argelia continental, pero que con el tiempo incluiría a más europeos. Habían demostrado ser muy hábiles y capaces durante la guerra de Crimea y contribuirían al esfuerzo principal durante la batalla. Las fuerzas francesas estaban generalmente mejor entrenadas y equipadas. Su general al mando, Charles de Lorencez, era un general experimentado que había estudiado en la academia militar y también había luchado en la guerra de Crimea y servido en Argelia, lo que le valió el rango de general de división.
El ejército mexicano era una banda de patriotas desarrapados en comparación con sus homólogos, pero aún así se podía contar con ellos para servir a su país. El ejército había luchado y ganado recientemente contra la facción conservadora durante la guerra de Reforma y era hábil tanto en la guerra convencional como en la de guerrillas. Su general al mando era Ignacio Zaragoza, un experimentado general sin entrenamiento militar formal que había dirigido a voluntarios en apoyo de Juárez y comprendía la importancia del terreno y el posicionamiento.