Après la défaite des Arapiles, l'arrière-garde protégeant la retraite de l'armée française du Portugal du maréchal Marmont, est commandée par le général Foy quand elle subit de lourdes pertes le à Garcia Hernandez, face à la cavalerie lourde anglo-germanique lancée à sa poursuite. Il prend une part active à toutes les campagnes de la Péninsule et des Pyrénées jusqu'à la bataille d'Orthez où il est très grièvement blessé. Nommé inspecteur général d'infanterie en 1814, il se rallie à l'Empire pendant les Cent-Jours. Il commande alors la dans la campagne de Belgique de 1815. Il reçoit à Waterloo le , la de sa carrière ; il reste néanmoins à son poste jusqu'à la fin de cette journée. Puis, il se rend à Ham où il rédige le , à chaud, une relation de la bataille.