Am 22. April übernahm General Beresford die Führung der Belagerung von Badajoz. Am 12. Mai wurde der Anmarsch eines französischen Entsatzheeres unter Marschall Soult mit 26.000 Mann und 4000 Reitern vom Süden her gemeldet. Beresford brach die Belagerung sofort ab und setzte sich nach Südosten in Richtung auf die kleine Stadt Albuera ab, wo er eine defensive Position einnahm. Nach der Vereinigung mit den spanischen Korps unter den Generalen Blake und Castanos war eine Armee von 36.000 Mann (davon etwa 7000 Briten) verfügbar. In der Schlacht von Albuera am 16. Mai kam es zu einem unentschiedenen Treffen zwischen Beresford und Soults Truppen. Besonders die spanische Division unter Zayas bewährte sich dabei gegen einen überraschenden Flankenstoß der Franzosen. In der Nacht vom 17. auf den 18. Mai musste Soult auf Sevilla zurückgehen, Wellington nahm die Belagerung von Badajoz wieder auf. Der neuernannte französische Oberbefehlshaber Marmont marschierte, um die französische Garnison von Almeida zu entsetzen. Die britisch-portugiesisch-spanische Koalition bestand in der folgenden Schlacht bei Fuentes de Oñoro am 3. Mai aus 34.000 Infanteristen und 1.850 Reitern und errang einen weiteren Sieg. Am 8. Mai zogen sich die Franzosen wieder zurück, Wellington konnte auch die Belagerung von Almeida fortsetzen.