Auf Befehl Duponts zog Vedel nach Norden, um die Miliz zu vertreiben, die den Pass von Despeñaperros blockierte. Aber General Castaños kam ihm zuvor und besetzte diese zentrale Position zwischen Dupont und Vedel mit 17.000 Mann und 12 Kanonen. Am 11. Juli vereinigte die spanische Hauptarmee unter Castaños ihre Truppen in Porcuna mit denen der Junta de Granada. Zwischen dem 18. Juli und dem 21. Juli kreisten reguläre spanische Truppen unter General Castaños die Franzosen ein und zwangen das Korps unter Dupont zwischen dem Guadalquivir und der Sierra Morena nach der Schlacht bei Bailén zur Kapitulation. Dupont kapitulierte am 22. Juli mit 8.242 Mann, am 23. Juli folgte die Divisionen Vedel, Chabert und Dufour mit weiteren 9.393 Soldaten. Von den etwa 18.000 Gefangenen wurden rund 12.000 auf die Insel Cabrera verbracht, wo etwa 5.000 an den dortigen inhumanen Zuständen starben. General Castaños wurde später für diesen Sieg von der Zentraljunta zum Generalissimus ernannt. Für Napoleon war diese Niederlage eine demütigende und schmerzliche Erfahrung. Joseph Bonapartes Truppen, welche Madrid am 20. Juli besetzt hatten, mussten die Stadt am 1. August wieder verlassen und auf Burgos zurückgehen.