河上所有橋樑,準備與拿破崙作曠日持久的周旋。而拿破崙則想再打一次奧斯特里茨戰役,所以,他決心渡過河去,尋求與奧軍決戰的機會。
拿破崙將渡河地點選在維也納東南的凱撒埃比爾多夫。此處河床較寬,河中央還有個較大的羅堡島,島上樹木叢生,可掩護部隊渡河。法軍用68條大船和9個大木筏在多瑙河右岸與羅堡島之間架起一座堅固的浮橋,在羅堡島至多瑙河左岸的阿斯佩恩和埃斯林之間,則架設了一座比較輕便的舟橋。為了迷惑奧軍,拿破崙命達武軍團進至維也納北面的諾斯多夫,佯裝架橋渡河。
5月20日16時,浮橋架設完畢,法軍立即開始渡河。拉納和馬塞納兩軍團最先渡過河,並佔領了附近的兩個村莊阿斯佩恩和埃斯林。夜間,河水漸漲,再加上浮橋其材不善,法軍渡河出現了困難。21日拂曉,拿破崙與貝爾蒂埃、馬塞納、拉納等軍官一同去阿斯佩恩察看地形,全力組織渡河。但多瑙河仍在漲水,渡河行動只得中止。這時渡過河的部隊僅3萬人。
此時的奧軍正好駐紮在阿斯佩恩和埃斯林兩村莊後面的高地上,法軍渡河行動簡直就是在奧軍眼皮底下進行的。查理大公見法軍在羅堡島與左岸之間只架設了一座輕便的舟橋,心中暗自高興,他認為拿破崙已給自己佈下了死亡陷阱。在他看來,龐大的軍隊從唯一的一座舟橋上越過湍急的大河,各部隊只能緩緩地依次行進,一旦軍隊被迫退卻,此橋必不能應急。若是此橋被毀,則法軍的退路完全被切斷。另外,輕便的舟橋一點也不牢固,步兵過橋尚且小心翼翼,騎兵和炮兵渡河就更加困難。鑑於這種分析,查理大公決定:先不忙於發動攻擊,待一半法軍渡河以後,再迅速毀掉舟橋,殲滅已經渡河的法軍。他下令上游部隊準備好裝有載重物和引火物的船隻,以便在適當的時候破壞橋樑。同時,命令主力注意隱蔽,避免暴露,只以部分騎兵佯作抵抗,並逐漸後退以引誘法軍。
21日中午12時,查理大公覺得進攻的時機已到,他親自率領9萬餘人,分五路向阿斯佩恩和埃斯林進發,企圖圍殲已渡河的3萬法軍。一場激戰開始了。此時法軍正是背水而戰,退卻已不可能,拿破崙斷然下令以寡敵眾。經過幾番較量,法軍旗兵受挫,奧軍進一步向河邊壓來。與此同時,查理大公按其預定計劃,利用不斷上漲的河水,從上游放下裝有重物和縱火物的船隻,毀掉了法軍與羅堡島之間的唯一的舟橋,法軍退路被完全切斷。身處險境的法軍毫不畏懼,依然頑強地戰鬥著。激戰持續了一個下午,阿斯佩恩先後易手達七次之多。直到夜幕降臨,雙方仍未分勝負。
這天夜晚,法軍利用夜色的掩護,迅速地修復了舟橋。滯留在羅堡島上的法軍很快地過了河。到天亮時,北岸的法軍已增至7萬人。拿破崙重新部署軍隊,準備對奧軍發起猛攻。
可部署未完,激戰又起,奧軍再次猛攻阿斯佩恩和埃斯林。雙方短兵相接,用刺刀衝殺,兩地處於反覆爭奪之中。
22日7時,拿破崙親臨戰場觀察,發現中央的奧軍並未發動攻擊,這時又聽說達武軍已開始渡河,於是,他決定依靠強大的援軍擺脫守勢,實行中央攻擊方案,對敵中央進行殲滅性的打擊。他命令拉納軍團向布萊屯裡方向進攻。拉納率步兵2萬人、大炮200門及龐大的騎兵縱隊,直撲奧軍中央。拉納軍攻勢兇猛,步兵隨炮火速進,奧軍第二、四軍團的接合部被突破,形成了一個很大的缺口。法騎兵迅速突入,直驅奧軍預備隊的陣地。這時,查理大公沉著冷靜,挺身危地,穩定士氣,他調來預備隊的擲彈兵急驅突破口。擲彈兵排成許多方隊,以密集炮火射擊,壓住和殺傷了中央法軍。奧軍的騎兵也及時趕來,穩定了陣勢。
拉納部隊被阻,雙方互射。在奧軍的炮擊下,法軍只得倉皇后退。奧軍乘勝追擊,並集中炮火猛