A szabályozatlan Duna évtizedek óta fenyegette a gyors ütemben fejlődő Pestet és Budát, de a városok elöljárósága nem sok mindent tett az árvíz ellen. Mindennek 1838-ban lett meg a böjtje, bár kezdetben minden a „szokott rend” szerint történt. Az előző év végén sok csapadék esett, majd hirtelen rég nem látott hideg köszöntött be. A folyón jégtorlaszok alakultak ki, és a Duna január 6-án elöntötte Buda mélyebben fekvő utcáit, de néhány nap után visszahúzódott medrébe.
A pesti tanács a fenyegető jelek láttán „védintézkedésre” szánta el magát: az előző, 1775-ös nagy árvíz szintjét elérő gátakat emeltetett homokból és trágyából. Március elején a Duna felső szakaszán megindult az olvadás, de a víz- és jégtömeget a Szentendrei-szigetnél kialakult jégtorlasz visszatartotta.
Budán ekkor már egy ideje csónakon közlekedtek az alacsonyan fekvő, a folyó által elöntött részeken álló házak között, amit a pestiek nagy érdeklődéssel szemléltek. A bajt csak Vásárhelyi Pál látta előre: a Duna szabályozását javasló mérnök épp 1838 márciusának elején írt cikket az Athenaeum című folyóiratba, amelyben megjósolta, hogy a rendezetlen mederben kialakuló jégdugók miatt az 1775-öst is felülmúló árhullámmal kell számolni
Március 13-án délben a várostól északra a jég töredezni kezdett, az ár lefelé indult, de a Csepel-szigetnél keletkezett, a mederhez fagyott újabb jégtorlasz visszaduzzasztotta a vizet. A jeges ár délután Vácnál átszakította a töltést, így a pestiek azt remélték, hogy a folyó már kitombolta magát. A katasztrófa mégis bekövetkezett: a Duna este tízkor átcsapott a Vigadónál emelt töltésen, és elöntötte a belváros alacsonyabban fekvő részeit.
A Nemzeti Színházban a betörő víz miatt kellett megszakítani az előadást. Éjfél felé átszakadt a váci (a mai Lehel térnél lévő), majd hajnalban a soroksári gát is, a víztömeg így már három irányból árasztotta el a várost. A kiöntés miatt a vízszint átmenetileg csökkent, de a Csepel-szigetnél a jég újra feltorlódott, a folyam felső szakaszáról az olvadás miatt újabb árhullám érkezett, így a Duna tovább áradt. A pesti oldalon a Belvárost 203, a Józsefvárost 216 centiméteres víz borította, a Ferencvárosban pedig 2,6 métert mértek.