A szövetséges keresztény hadak már 1684-ben kísérletet tettek Buda visszavételére, ám ekkor, 111 napos ostrom után, vissza kellett vonulniuk. Részben a törökök szívós védekezése, részben az időjárás fogott ki rajtuk. A Haditanács 1686-ban ismét Buda ostroma mellett döntött. A főparancsnokságot újra Lotharingiai Károlyra bízták, aki június 18-án foglalta el állásait 40 ezer emberével - közöttük a brandenburgi segélycsapatokkal és a nem egyidejűleg jelenlévő 15 ezer magyarral - a vár északi oldalán. Az önálló parancsnokságot kiharcoló Miksa Emánuel bajor választófejedelem 21 ezer főnyi bajor, szász és ausztriai katonasága a palota felőli oldalon, a Nagy Rondellánál sorakozott fel.
A vár védelmét a nagy tapasztalatokkal rendelkező, hetvenesztendős Abdi Abdurrahman pasa irányította, aki mintegy 10 ezer harcost vont össze, közöttük válogatott janicsár- és szpáhicsapatokat.
Az ostrom nyitó fázisában, június 24-én a szövetségesek kezére került a Víziváros. A rendszeres ostromhoz július első napjaiban láttak hozzá: a vár északi és déli oldalán működésbe léptek az ágyúk és a mozsarak, a katonák közelítő árkokat ástak a falak irányába, és védműveket (contravallatio) építettek a várbeliek kitörésének feltartóztatására.
Az első általános gyalogsági rohamot Károly herceg egységei hajtották végre július 13-án, de az súlyos kudarccal végződött. Július 22-én 800 tonna puskapor felrobbant a palota Dunára néző szárnyában. Az 1500 török életét követelő katasztrófa után azonban hiába szólította fel megadásra Abdurrahman pasát a császári fővezér, sőt később beküldött felhívásának sem lett foganatja. Augusztus végére az ostromlók olyan mértékben megrongálták és birtokolták az északi, illetve déli védművek jelentős részét, hogy a kisegítő hadtestek megérkezése után elszánhatták magukat a végső támadásra. Szeptember 2-án, hétfőn délután három óra tájban szólaltak meg a rohamra hívó lövegek, s amikorra beesteledett, a rommá lőtt, lángokban álló várban megszűnt minden ellenállás. Buda 145 év után felszabadult a török megszállás alól.