A főváros Pest-Buda 1849 első napjaiban került a Windisch-Grätz herceg vezette császári hadsereg kezére, az országgyűlés és a kormány Debrecenbe tette át székhelyét. A Tisza mögé szorított honvédsereg márciusban lendült támadásba, és a tavaszi hadjárat során egyik győzelmet a másik után aratta. Az isaszegi, majd a komárom-szőnyi csata után az ország területének nagy részét visszafoglalta, április 25-én Pestre is bevonult. A szabadságharc vezetői ekkor dilemmával kerültek szembe: üldözzék-e tovább az osztrák főerőket, vagy Buda visszafoglalását tűzzék ki célul. Végül parázs viták után az utóbbi mellett döntöttek, figyelembe véve, hogy ha Bécs felé indulnak, a fáradt seregnek túlerővel kellett volna szembenéznie, ugyanakkor a Függetlenségi Nyilatkozat április 14-i elfogadása után a közvélemény azt várta, hogy a főváros, az ország szuverenitásának szimbóluma ismét magyar kézre kerüljön.
Buda várát Heinrich Hentzi altábornagy parancsnoksága alatt mintegy ötezer császári katona védte. A feldunai hadtest zöme 1849. április 29-én indult Komárom alól Buda felé, a VII. hadtest két hadosztálya Pöltenberg Ernő vezetésével Győrnél maradt, a VIII. hadtest mozgó része pedig a Csallóközben állomásozó császári erőket tartotta szemmel. A május 4-én a fővároshoz érkezett sereg létszáma – a már ott lévő Aulich-hadtesttel együtt – mintegy 31 ezer főt tett ki. A fővezér Görgei Artúr egy fogoly osztrák tiszttel küldött üzenetben megadásra szólította fel Hentzit, és arra kérte: ha mégis összecsapásra kerülne sor, kíméljék meg a pesti oldalt és a civil lakosságot. Görgei világossá tette, ha a védtelen Pestet támadás érné, a védők nem számíthatnak kegyelemre.
Hentzi nem adta fel a várat, sőt szinte minden nap lövette Pestet, később a Vízivárost is. A céltalan rombolásnak békés polgárok mellett a reformkor építészetének büszkesége, a pesti Duna-sor is áldozatul esett, negyven épület, köztük a Pollack Mihály tervezte első Vigadó teljesen leégett. Kmetty György honvédtábornok hadosztálya még május 4-én rohamot kísérelt meg a vár ivóvízellátását biztosító vízmű sáncai ellen, de kudarcot vallott. Nem hozott sikert a Sváb-hegyről és a Nyárs-hegyről (a mai Naphegy) indított tüzérségi támadás sem, a kis kaliberű tábori lövegek nem veszélyeztették a vár falait.
Görgeinek ezután szabályszerű ostromra kellett felkészülnie. Komáromból hozatott öt nehéz ostromágyút, kijelölték a várfalnak azt a szakaszát, amelyen rést kell törni, fedezéket készítettek a tábori ütegeknek. Az ostromágyúk május 16-án reggel szólaltak meg először, s a nap végére a falak nyugati és délnyugati részén, a Fejérvári kapu környékén hatalmas réseket ütöttek. Másnapra virradóra az I. és a III. hadtest, valamint Kmetty hadosztálya általános támadásra indult, de a még túl magasan levő résen át a honvédek nem tudtak behatolni a várba.
A napokig folytatódó ágyúzás után, május 21-én hajnalban megkezdődött a döntő roham. Az I. hadtest a várfal Krisztinaváros felőli szakasza ellen indult támadásra, a III. a Bécsi kaput és a Vérmező felé eső sarokbástyát, míg a Kmetty-hadosztály a vízivárosi vízmű sáncait vette ostrom alá. A golyózápor közepette legelőször az I. hadtest csapatai jutottak be a várba hajnali négy óra körül. A Szent György térrel szemközti – viszonylag alacsony – falakat egy önkéntesekből álló század mászta meg, majd a 47. zászlóalj is benyomult a várkertbe. Az itteni olasz Ceccopieri-zászlóalj letette a fegyvert, a magyar zászlót először Püspöky Gracián honvéd tűzte ki a várfalra.
Miután a Máriássy-hadosztály többi csapata is bejutott a várba, egy zászlóalj élén maga Hentzi indult ellenük rohamra, de az őket fogadó sortűzben halálos sebet kapott, katonáit szuronyroham állította meg. Ezzel egy időben a III. hadtest csapatai betörtek a Bécsi kapunál, s röviddel később Kmetty is elfoglalta a vízmű sáncait. Hentzi helyettese, Alois von Alnoch ezredes ekkor a robbantásra előkészített Lánchídhoz szaladt, és életét feláldozva szivarját a hídra helyezett négy mázsa lőporba vetette. A híd azonban csak könnyebben rongálódott meg, a robbanás nyolc kereszttartó szerkezetet tett tönkre, mert a hidat építő Clark Ádám mérnök hasonló kísérletre számítva a lánckamrákat vízzel árasztotta el.
A még fogságba nem esett császári csapatok a királyi várba vonultak vissza, ahol reggel hét óra körül letették a fegyvert. Hentzi a gondos ápolás ellenére két nappal később belehalt sebébe, a császári propaganda később azt terjesztette, hogy betegágyán bántalmazták. Az emlékére 1852-ben I. Ferenc József saját költségén állított, a nemzet által provokációnak érzett emlékmű 1899-ig állt a budai Várban a Szent György téren, akkor zárt térbe helyezték át, és csak 1919-ben bontották el.)
A 17 napig tartó ostrom alatt a császári és királyi hadsereg négy elsőrendű hadosztályát veszítette el, 710 katona elesett, négyezren, köztük 113 tiszt hadifogságba kerültek. A polgári áldozatok mellett a győzelem 370 magyar honvéd életét követelte, 670-en sebesültek meg. Az 1849. május 21-i diadalmas budai bevonulás a szabadságharc egyik legdicsőbb pillanata volt, bár akadnak, akik az ostromot a helyzeti előny és az idő elvesztegetéseként értékelik. Ez a nap azonban fordulópont is lett: I. Miklós orosz cár és I. Ferenc József osztrák császár ugyancsak május 21-én állapodott meg Varsóban az orosz hadsereg magyar forradalom elleni intervenciójában.
A kormány 1992-ben döntött úgy, hogy május 21-én, Buda 1849. évi visszavételének emlékére ünnepeljük a magyar honvédelem napját.