За четыре дня на остров были проведены временные мосты из собранных на реке судов, перекрытых досками, и войскам было предписано сосредоточиться у пунктов переправ.
Вечером 18 мая на Лобау высадился отряд французской кавалерии, отбросивший передовые посты австрийцев, а в течение 19 и 20 мая были наведены мосты через восточный рукав Дуная у деревни Гросс-Энцерсдорф. Кстати, готовясь к операции, Наполеон был недостаточно осведомлен о силах австрийцев и склонен к их преуменьшению. Между тем вся австрийская армия стояла фактически напротив наводимых переправ, растянувшись дугой от Биземберга до Маркграфа Нейзиделя.
В ночь на 21 мая французские части под командованием Ланна и Массена переправились на левый берег Дуная, захватили Эсслинген и Асперн, разместив в промежутке между этими селениями конницу. Только к 15 часам, когда французы имели на левом берегу уже 35 000 человек и 50 орудий, эрцгерцог Карл перешел в наступление пятью колоннами в попытке сбросить французов в реку. В то же время к Шпицу был направлен австрийский отряд для спуска вниз по течению реки брандеров.
На правом фланге австрийцев корпуса Гиллера и Бельгарда начали наступление на Асперн, имея в своем тылу корпус Рейса, который остался у Бизамберга. Несколько раз селение, занятое войсками Массена, переходило из рук в руки. Корпус Гогенцоллерна, поддержанный конницей Лихтенштейна, вступил в центре в бой с кавалерией Бессьера, который бросился на противника, развернув в одну линию все свои 16 эскадронов. Войска Розенберга наступали на Эсслинген, энергично защищаемый войсками Ланна. Карл бросил в бой сразу около 80 000 бойцов. До 20 часов продолжался упорный бой, в результате которого французы, несмотря на двойное превосходство австрийцев, удержали за собой Эсслинген и восточную часть Асперна. На фронте корпуса Гогенцоллерна французы сумели уже продвинуться несколько вперед. После 20 часов Карл прекратил атаку и лишь продолжал артиллерийский обстрел противника до темноты.
В ночь на 22 мая Наполеон усилил свою левобережную группу до 70 000 человек и 144 орудий, решив с утра перейти в наступление с целью прорыва фронта австрийцев и охвата их левого фланга. Охват возлагался на войска Ланна, за которыми во второй линии была поставлена гвардия.
На рассвете, отбросив австрийцев, начавших атаку селений, французы перешли в наступление, частично прорвав фронт на участке Гогенцоллерна. Так же удачно начал наступление Ланн, однако австрийцы проявили большое упорство, постоянно пытаясь контратаковать. Около 16 часов австрийцы прекратили атаки и даже готовы были отступить. Но тут случилось непредвиденное...
Постоянно поднимавшиеся в последние дни воды Дуная смыли временные мосты. Дальнейшее усиление французской левобережной группы оказалось невозможным. Подготовившийся к переправе у Эберсдорфа корпус Даву застрял на правом берегу. А главное — слух о гибели моста через главный рукав Дуная произвел смятение в рядах наполеоновских войск. Толпы солдат бросились к переправам, неся огромные потери от огня неприятеля. Отрезанные от главных сил, израсходовав боеприпасы, Ланн и Массена стали отступать. Французские ряды, скученные на небольшом пространстве, буквально выкашивались австрийской артиллерией. Во время этого боя был смертельно ранен маршал Ланн. Неприятельское ядро раздробило и почти оторвало ему обе ноги, он умер на руках у Наполеона неделю спустя.
К наступлению темноты французы продолжали удерживать небольшой участок левого берега, но в ночь на 23 мая Наполеон решил отступить на остров Лобау. В то же время эрцгерцог Карл отвел свои войска, обстреливаемые с острова французской артиллерией, к Бизамбергским высотам и высотам по ручью Руссбах, оставив в Эсслингене и Энцерсдорфе свой 6-й корпус.
Двухдневные бои под Эсслингеном—Асперном стоили Наполеону больших потерь — около 37 000 человек, в том числе 24 генерала, потери австрийцев — около 27 000 (13 генералов). Наполеона постигла полная неудача. Излишняя вера в успех и недооценка возросших боевых качеств австрийской армии толкнули императора на недостаточно обеспеченную операцию. Против французов стоял новый солдат, уже не склонный бежать с поля сражения.
А главное, весть о неудаче в сражении у Эсслингена мгновенно облетела всю Европу, поколебала веру в непобедимость прославленного полководца. Все считали, что французская армия оказалась в очень тяжелом положении. Даже Ланн, умирая, шептал: «Спасите армию...» Однако Наполеон не пал духом. Он вообще никогда не отчаивался, и чем сложнее была ситуация, тем хладнокровнее он становился. Император решил остаться на острове и готовиться к новой переправе...
Кстати, сам Наполеон до конца своей жизни и не признал, что потерпел поражение. Предоставим ему слово: «Было ли Эсслингенское сражение проиграно потому, что атаковали центр неприятеля в колоннах? Или же мы проиграли его вследствие военной хитрости эрцгерцога Карла, который сорвал наши посты, напал на нас в этом критическом положении, имея 100 000 человек против 45 000?
Но, во-первых, мы не проиграли Эсслингенского сражения, а выиграли его, потому что поле сражения от Асперна до Эсслингена осталось в нашей власти, во-вторых, герцог Монтебелльский (Ланн — В. Б.) атаковал не в колоннах, а в развернутом строю... он маневрировал искуснее всех других генералов армии, в-третьих, не эрцгерцог сорвал наши мосты, а Дунай, который за трое суток поднялся на 14 футов».
О событиях 21 мая: «В победе можно было не сомневаться, но после полуночи вода в Дунае стала ужасающе прибывать. Переправа войск по мосту снова была прекращена, и возобновить ее удалось только с рассветом».
О событиях 22 мая: «Молодая гвардия направилась уже к флангу неприятельского левого крыла, но тут продвижение победоносных войск пришлось задержать, мосты снова были сорваны силой потока, некоторые понтоны были унесены на два лье... Восстановить их можно было только через несколько дней. Все это было ужасно некстати, но оперативный план был таким мудрым и глубоко продуманным, что армия не могла подвергнуться никакой опасности и, в худшем случае, вновь заняла бы свои позиции на острове Лобау, где она была недосягаема...»
Узнав о гибели мостов «император послал князю Эс-слингенскому (Массена — В. Б.) и герцогу Монтебелльскому приказ остановиться и постепенно отступить в прежнее расположение. Первый примкнул свой левый фланг к середине деревни Асперн... второй стал между Асперном и Эсслингеном, примкнув правое крыло к последнему. Этот маневр был произведен, как на параде; неприятель, потерявший уже надежду и отступавший, с изумлением остановился, ничего не понимая в этом отступательном движении французов; но скоро он узнал, что мосты их снесены; центр его занял прежнюю позицию.
Было около 10 часов утра; с этого момента и до четырех часов пополудни, — следовательно в продолжении шести часов, — 100 000 австрийцев с 500 орудиями тщетно и безуспешно атаковали 50 000 французов, имевших на позициях не более 100 орудий и принужденных беречь снаряды вследствие недостатка в них.
Весь успех сражения зависел от захвата селения Эсслинген; эрцгерцог сделал все, что следовало, пять раз атаковал его свежими войсками; два раза овладевал им и пять раз был из него вытеснен. Наконец в три часа пополудни император приказал своим адъютантам, генералу Раппу и храброму графу Лобаускому, стать во главе Молодой гвардии и тремя колоннами бросаться в штыки на неприятельские резервы, готовившиеся к шестой атаке. Австрийцы были разбиты и победа обеспечена. Эрцгерцог не имел более свежих войск и отошел на позицию; ровно в 4 часа прекратился огонь, хотя в это время года можно сражаться до 10 часов вечера. Таким образом, мы в течение шести часов удерживали за собой поле сражения...»