Emprendido por el mariscal Soult el sitio de Badajoz, socorrió el general Mendizábal la plaza, y se estableció con el resto de sus tropas, unos 8.000 infantes y 1.200 caballos, en el campo de Santa Engracia, en la margen opuesta del Guadiana, cerca de la confluencia del Gévora con dicho río, apoyando su ala derecha en el fuerte de San Cristóbal y la izquierda en las alturas de Santa Engracia, con lo cual aseguraba su comunicación con Yelves y Campomayor. El general español, en vez de atrincherarse y fortificarse en sus posiciones, como le había aconsejado Wellington, permaneció inactivo, confiando en la crecida de ambos ríos, sin cuidarse tan siquiera de inutilizar o defender los vados; así es que, en cuanto menguaron las aguas, pasaron a la margen derecha del Guadiana, sin contratiempo alguno, 6.000 infantes enemigos y 3.000 caballos, vadearon también sin dificultad el Gévora, por la derecha la caballería, al mando de Latour-Maubourg, para envolver la izquierda española, y por la izquierda la infantería al mando de Girard, que logró interponerse hábilmente entre el fuerte de San Cristóbal y el ala derecha de Mendizábal.
Apenas iniciada la briosa acometida que ordenó el mariscal Mortier, entró la confusión en nuestras filas; la caballería siguiendo el deplorable ejemplo iniciado por la portuguesa, mal apoyada por la infantería de Mendizábal, se declaró en huída a pesar de los laudables esfuerzos de su general D. Francisco Gómez de Butrón, quien para contenerla se puso a la cabeza de los regimientos de Sagunto y Lusitania. Mendizábal, abandonado por la caballería, se vio pronto envuelto, y aunque formó dos grandes cuadros, sosteniéndose algún tiempo en la altura de la Atalaya, fueron al fin rotos y entrados por todas partes, huyendo los dispersos en todas direcciones. Tan solo una hora duró la pelea, tan ignominiosamente perdida; quedaron en el campo más de 800 muertos y heridos, y en poder del enemigo el general Virues con otros 4.000 prisioneros, y además 17 cañones, 20 carros de municiones, cinco banderas, y gran número de fusiles, sin que los franceses perdiesen arriba de 400 hombres. El sargento primero del regimiento de León, D. Miguel Villar evitó que los franceses se apoderasen de su bandera coronela al caer herido su abanderado. El regimiento del Rey pereció casi todo en tan aciaga jornada; del regimiento de Toledo se salvó también muy corto número de individuos. El teniente de artillería D. José Ponte murió en Yelves a consecuencia de las heridas recibidas. El regimiento de León perdió a su sargento mayor D. Baltasar Cano y gran número de muertos, heridos y prisioneros. El Brigadier D. José de Gabriel perdió gloriosamente la vida sobre el campo de batalla. El general Mendizábal, para rehabilitarse en la opinión, se enganchó como simple soldado voluntario, peleando como tal en la batalla de Albuera tres meses después.