Regrupați în jurul Vienei și pe insula Lobau, francezii primesc întăriri consistente și astfel, pe 4 iulie, lansează o nouă ofensivă, avându-l ca vârf de lance pe experimentatul Mareșal Masséna, care trece fluviul primul, cu puternicul său Corp de armată. Este urmat apoi de celelalte Corpuri de armată franceze și de Garda Imperială. Napoleon își dispune trupele pe un front mai restrâns decât Arhiducele Carol, acesta din urmă repliindu-se spre localitatea Deutsch-Wagram, în spatele unei linii fortificate, pregătite anume pentru a contracara o ofensivă franceză. Bătălia de la Wagram durează două zile și este extrem de sângeroasă, rezultat al marii concentrații de artilerie. Pe 6 iulie, în ciuda unei contraofensive îndrăznețe, austriecii nu își coordonează suficient de bine atacurile și francezii reușesc mai întâi să le împingă înapoi aripa stângă, apoi să le flancheze aripa dreaptă și, în final, să le spargă centrul, obligându-i la o retragere precipitată. „Armata Austriei Interioare”, condusă de Arhiducele Ioan, a sosit pe câmpul de bătălie doar în seara zilei de 6 iulie, după ce bătălia fusese deja pierdută. În total, austriecii au lăsat pe câmpul de bătălie aproape 35 000 de morți și răniți, de două ori mai mulți decât francezii. Bătălia de la Wagram avea să fie ultima victorie decisivă a lui Napoleon, în sensul că avea să fie ultima bătălie care frânge dorința inamicului de a mai continua războiul.