Badajoz estaba protegida por unos 5000 soldados franceses al mando del general Armand Philippon, y poseía unas fortificaciones mucho más fuertes que Almeida o Ciudad Rodrigo, con una sólida muralla cubriendo numerosos fuertes y bastiones.
La ciudad ya se había enfrentado a dos sitios sin éxito y estaba bien preparada para un tercer intento, con las murallas reforzadas y algunas áreas alrededor de las murallas inundadas o minadas con explosivos potentes.
Mientras se desarrollaban los movimientos de tierras, los franceses hicieron varias incursiones para intentar destruir las líneas avanzadas hacia la muralla, pero fueron repetidamente repelidas por los tiradores británicos y contraatacados por la infantería.
La descarga furiosa de artillería devastaba a los soldados británicos en la muralla, y la brecha pronto empezó a llenarse con muertos y heridos, los cuales tenían que ser sorteados por las tropas de asalto.
El propio general Picton fue herido mientras escalaba para intentar llegar a lo alto de la muralla.
En cualquier sitio que atacaban, los soldados aliados fueron parados y la carnicería fue tan grande que Wellesley estuvo a punto de parar el asalto, cuando los soldados finalmente se introdujeron en la muralla.
Desde allí lograron enlazar con los hombres de la 5.ª división, quienes también estaban intentando adentrarse en la ciudad.
Viendo que no podían resistir más, el general Philippon se retiró de Badajoz y se dirigió al fuerte de San Cristóbal, situado en la orilla derecha del río Guadiana donde, finalmente, depuso las armas en la mañana del día siguiente.