Miután április 26-án, Komárom mellett a honvédek megfutamították a Schlik és Haynau által vezetett osztrák főerőket, adva volt a kérdés, hogy az eredményes tavaszi hadjárat hogyan folytatódjon – írja a Rubiconban Tarján M. Tamás történész. – Egyik lehetőségként az osztrák csapatok üldözése merült fel, de ezzel az előrenyomuló magyar csapatok számos kockázatot vállaltak volna, hiszen a korábban aratott győzelmek egyike sem volt megsemmisítő erejű.
A másik lehetőség az ősi főváros, a Hentzi által védett Budavár visszafoglalása volt. Ez nem ígérkezett nehéz feladatnak, hiszen a kor haditechnikájához mérten a budai védművek már elavultak, ráadásul a honvédek nyomasztó fölényben voltak a körülbelül 5000 fős osztrák védőkkel szemben. Buda visszafoglalását Kossuth Lajos politikai okokból – a nemzetközi visszhang és a közvéleményre gyakorolt hatás miatt – is szorgalmazta, így április 29-én a feldunai hadsereg nagy része megindult Buda felé.
Az Aulich-féle I. hadtesttel együtt 31 000 fősre duzzadó honvédsereg május 4-én érkezett meg a falak alá, ekkor Görgey egy fogoly osztrák tiszt révén üzenetet küldött Hentzi számára. A fővezér levelében egyfelől megadásra szólította fel a vár védőit, másrészt kérte a parancsnokot, hogy a küzdelmet a pesti oldal és a civil lakosság megkímélésével vívják meg. Hentzi válaszul tüzérségével bombázni kezdte a pesti rakparton álló klasszicista épületsort – és később a Víziváros épületeit is –, ami az ostrom 17 napja alatt teljesen el is pusztult.
Ez egyértelmű válasz volt, így a nyugati oldalon felállított magyar tüzérség is lőni kezdte a vár falait, és Kmety György még május 4-én kísérletet tett a vár ellátását biztosító vízvédmű lerombolására. Az ostrom első napjaiban bebizonyosodott, hogy elhúzódó küzdelemre kell számítani, egyrészt a védők kitartása, másrészt a tüzérség elégtelen rombolóereje miatt. Görgey néhány nap után Guyon Richárdtól kért ostromágyúkat, melyek május 16-tól kezdve a Nap-hegy felől folyamatosan lőtték a vár falait.
A tüzérség eredményei nyomán a május 17-ről 18-ra virradó hajnalon felderítő századok megpróbálkoztak egy rohammal, de ezt a védők akkor még visszaverték, mivel a nyugati falakon ütött rés nem bizonyult még elegendőnek a bejutáshoz. Május 21-én hajnali három órakor aztán Görgey eredményes rohamot indított: az ágyúsor össztüze után Nagysándor József I. hadteste átjutott a falakon, miközben Aulich II. és Knézich III. hadteste északi és déli irányból támadta a kapukat.
Miután a honvédsereg betört a Várba, maga Hentzi állt csapatai élére, szuronyrohamát azonban elsöpörték, Buda pedig Görgeyék kezére került. Az osztrák parancsnok helyettese, Alois von Alnoch megpróbálkozott még a Lánchíd felrobbantásával, de az aknák végül az ő életét oltották ki. A 17 napon át vívott ostrom során a magyar hadsereg katonái közül 368 fő esett el és mintegy 700-an sebesültek meg, ezzel szemben az osztrák védők vesztesége 710 fő volt, illetve fogságba esett további 4000 katona.
Az 1849. május 21-i diadalmas budai bevonulás a szabadságharc egyik legdicsőbb pillanata volt, melyet ugyanakkor később számos történész és szakértő a helyzeti előny és az idő elpocsékolásaként értékelt. A fényes győzelmet egyébként később maga Görgey is egyik legnagyobb taktikai hibájának minősítette. Ebben az esetben felmerül a történelmietlen kérdés, hogy milyen egyéb célt tűzhetett volna maga elé a Magyarország területének nagy részét felszabadító honvédsereg.
Másfelől minden spekuláció haszontalan, ugyanis éppen Buda elfoglalásának napján találkozott Varsóban Ferenc József császár I. Miklós (ur. 1825-1855) orosz uralkodóval, hogy segítséget kérjen tőle a magyar szabadságharc leverésére. A Paszkievics herceg vezetésével hamarosan meginduló, 200 000 fős haderőt mozgósító intervenció olyan körülmény volt, mely a magyar tervektől függetlenül a császári hatalom javára döntötte el a küzdelem sorsát.