W obliczu tej sytuacji arcyksiążę Karol na czele 75 tys. ludzi zdecydował się zaatakować nieprzyjaciela, zdecydowany odrzucić go na drugi brzeg rzeki. Następnie zamierzał zniszczyć mosty uniemożliwiając Francuzom ponowną przeprawę i obsadzić brzeg Dunaju swoją artylerią.
Dopiero po kilkugodzinnych walkach na drogach i w domostwach oraz po załamaniu się ataku francuskiej kawalerii na austriacką piechotę, wojskom Karola udało się wyprzeć przeciwnika z Aspern. Nie powiodły się wszelkie francuskie próby odzyskania tej miejscowości. Mimo tamtejszej porażki, Francuzi utrzymali drugi punkt obrony – Essling, odpierając wszystkie ataki austriackie.
Nocą, po naprawieniu głównego mostu, mocno zniszczonego przez Austriaków, Napoleon nakazał przeprawę pozostałych wojsk, po czym rankiem 22 maja wzmocnionymi siłami ponownie natarł na przeciwnika. Francuzi dysponowali już tylko 60 tysiącami żołnierzy, choć strona austriacka również poniosła ogromne straty w sile żywej. W trakcie ciężkich walk o obydwie miejscowości Austriacy znów próbowali zdobyć Essling. Miejscowości tej broniło prawe skrzydło francuskie, natomiast lewe dokonało natarcia na Aspern. Główny atak przypuścił Napoleon w centrum wojsk austriackich. Atak sił Lannesa groził przełamaniem szyków obronnych przeciwnika.