1808 begleitete er Napoléon in den Spanienfeldzug und erhielt dort das Kommando der Zentralarmee. Er siegte in der Schlacht bei La Coruña am 16. Januar 1809 gegen die britischen Truppen unter General John Moore sowie in der Schlacht bei Braga am 20. März 1809 gegen die Portugiesen und trieb das englisch-portugiesische Heer bis nach Porto zurück. Nach der für ihn ebenfalls siegreichen Ersten Schlacht bei Oporto am 28. März 1809 konnte er am folgenden Tag die Stadt Porto besetzen. Am 12. Mai 1809 erlitt er in der Zweiten Schlacht bei Oporto eine Niederlage gegen Wellington. An Jourdans Stelle zum Generalstabschef der Armee in Spanien ernannt, schlug er am 19. November 1809 die spanische Armee in der Schlacht bei Ocaña, nahm dann 1810 Sevilla und trieb die Spanier nach Cádiz zurück. 1810 wurde er auch Gouverneur von Andalusien. Am 11. März 1811 eroberte er Badajoz und lieferte den Engländern und Portugiesen am 16. Mai die Schlacht bei La Albuera. Seine Unstimmigkeit mit König Joseph Bonaparte veranlassten ihn dazu, 1813 seinen Rücktritt zu verlangen.