Durante la mañana del 9 de mayo, los 2000 soldados del General Taylor atacaron a una fuerza mexicana marginalmente superior, pues ésta había aumentado a alrededor de 3000 hombres, con los escasos y exhaustos refuerzos que recibió Mariano Arista durante la noche anterior.
Los refuerzos que debió haber recibido por parte del ejército de oriente o del centro del país nunca llegaron y las bajas recibidas en la batalla anterior fueron muy cuantiosas al no permitir a las tropas mexicanas que atacaran a bayoneta, arma en la cual estas eran más diestras.
Para el ejército invasor le fue fácil tomar el flanco izquierdo, ya que este se encontraba desprotegido ampliamente debido a las órdenes que había dado Arista.
Aun sin mando, los mexicanos lograron montar dos contraataques sobre la posición estadounidense, pero fueron rechazados y diezmados por la superior artillería del invasor y finalmente, el ejército mexicano tuvo que retirarse del campo de batalla, abandonando un número importante de artillería y pertrechos.
Las bajas mexicanas aumentaron en número en la precipitada y desastrosa retirada que ordenó Arista a través del Río Bravo.