Napoléon bat l'archiduc Charles à Abensberg le 20 et prend du même coup Landshut, mais il comprend que le gros de l'armée autrichienne est postée au nord, à Ratisbonne, avec à sa tête l'archiduc qui ordonne à ses troupes, la nuit du 21, d'attaquer les Français autour d'Eckmühl. Aussitôt, l'Empereur entreprend d'envoyer le corps de Lannes vers cette région pour livrer la bataille qu'il espère décisive pour le sort de la campagne. Parti de Landshut et accompagné des maréchaux Berthier et Masséna, l'Empereur gagne Eckmühl par le sud où se trouve l'avant-garde de l'armée d'Allemagne.