Az 1683-ban elért váratlan sikerek, a kahlenbergi győzelem és Esztergom visszafoglalása ellenére még mindig nem lehetett bizonyosra venni, hogy a felszabadító háború folytatódni fog. A Habsburg–lengyel szövetség megbomlani látszott, mivel Sobieski is megsértődött azon, hogy Lipót oly hidegen bánt vele. Az Udvar viszont aggódott, hogy a lengyel király támogatta Thököly átállási kísérleteit és ezzel együtt esetleg a magyar koronára pályázik.
A bécsi kormányzat spanyol pártja továbbra is a békét erőltette a Portával, mert jobban félt XIV. Lajos hódító törekvéseitől, mint a töröktől. Számításaikat azonban a külpolitikai események ismét keresztülhúzták. IV. Mehmed ugyanis Kara Musztafa helyére a szintén nagyravágyó, tettrekész, de az európai politikai viszonyok megváltozását ugyancsak kevéssé érzékelő Kara Ibrahimot nevezte ki. A szultán és az új nagyvezír elutasították Bécs megismételt békeajánlatát.
A felszabadító háború folytatásáért az oszmánok elleni harc legfőbb szószólója és támogatója, XI. Ince pápa is mindent megtett. Hathatós közbenjárása nyomán 1684. március 5-én a Habsburg monarchia, a Lengyel Királyság és Velence megkötötte a törökellenes szövetséget, a Szent Ligát. Ehhez később, 1686-ban Oroszország is csatlakozott. A felek kötelezték magukat, hogy saját területükön háborút indítanak az Oszmán Birodalom ellen, azzal különbékét nem kötnek. A fegyverrel visszaszerzett saját területeket mindenki megtarthatja. A közös cél ellenére a felek között már kezdetben is komoly feszültségek mutatkoztak, amiben Franciaország is nagy szerepet játszott. XIV. Lajos egyfelől folytatta hódító politikáját, másrészt, a Habsburgok pozícióit gyengítendő, megerősítette kapcsolatát Lengyelországgal, végül fenntartotta alig titkolt szövetségét a Portával. Ismét a pápai diplomácia lépett közbe és az általa felkínált előnyökért cserébe XIV. Lajos hajlandónak mutatkozott húsz évre szóló fegyverszünetet kötni Lipót császárral. A Habsburgok így teljes haderejüket a török ellen fordíthatták.
Fotó: XI. Ince pápa szobra
A 17. század politikai életében alaptételnek tekintették, hogy az Oszmán Birodalom európai hatalmának megtörése csak széleskörű összefogással sikerülhet. Ennek érvényességét mutatta a Szent Liga létrejötte, és ennek értelmében fordult az Udvar a német fejedelmekhez támogatásért, és a francia befolyás ellenére, kemény alkudozások árán, politikai engedmények árán, hatalmas pénzösszegek ígéretével 1684-ben sikerült elnyerni a legfontosabb birodalmi területek támogatását. Így több tízezer katonával sikerült gyarapítani a török ellen harcoló seregek létszámát.
A török elleni felszabadító háború haditerve ekkor már több mint száz éve készen állt. Még az 1576–1577. évi hadi tanácskozás idején vetették papírra, amikor az Oszmán Birodalom ellen indítandó támadó háborúnak még aligha volt realitása. Elsődleges célul már akkor is Buda visszafoglalását és a Duna-vonal felszabadítását tűzték ki. A főirányban indított támadást a Dráva mentén és Felső-Magyarországon folytatott akcióknak kellett segíteniük. Az elgondolást utóbb a Haditanács korábbi elnöke, Raimondo Montecuccoli, a szentgotthárdi győző is magáévá tette és részletesen kidolgozta azt. A Haditanács is ezt a tervet követte 1684-ben, és később, 1686-ban is. A Buda ellen vonuló főerőt két kisebb hadtest támogatta, egy harmadik pedig Erdélyt biztosította.
A csapatok már gyülekeztek 1684 tavaszán, midőn a Luxemburg elleni francia támadás hírére azok egy részét át kellett irányítani a nyugati frontra. Emiatt Starhemberg tábornagy, Bécs védője és a főparancsnok, Lotharingiai Károly herceg helyettese egyedüliként ellenezte Buda ostromát, mondván, amíg Érsekújvár a töröké, s ezért az utánpótlási útvonal bizonytalan, addig nem szabad belefogni ebbe a vállalkozásba.
Nem hallgattak rá, pedig neki lett igaza. Buda ostroma 112 napi véres és hiábavaló küzdelem után kudarcba fulladt. A csapatok létszáma az időközben beérkezett erősítések ellenére elégtelennek bizonyult, és e keveset is túlságosan szétforgácsolták; az ostromhoz túl későn fogtak hozzá, így az őszi esőzések sárba fullasztottak minden akciót; a török felmentő sereg kezdeti veresége ellenére mindet megtett a Vár védőinek megsegítésére, akik úgyszintén bátran és elszántan küzdöttek. November 3-án a mintegy húszezer főnyi veszteséget szenvedett ostromlók megkezdték a visszavonulást. Mindeközben Felső-Magyarországon a császári csapatok nagy területeket foglaltak vissza Thökölytől, majd szeptember 17-én Eperjes alatt szétverték a fejedelem seregét.
A Buda alatt elszenvedett kudarc után Habsburg hadvezetésnek tudomásul kellett vennie, hogy a veszteségek ellenére a Porta még mindig hatalmas tartalékokkal rendelkezik, s erejét csak módszeresen és átgondolt stratégiával lehet megtörni. Ha tehát a Hódoltság kulcsát, Budát, a siker reményében akarták ostromolni, akkor előbb az oda vezető utat kell szabaddá tenni. Az 1685. évi hadjárat céljaként ezért Érsekújvár elfoglalását jelölték meg.
Érsekújvár hatbástyás erődítménye korábban a törökellenes védelmi rendszer legkorszerűbb elemének számított. A törökök azonban az 1663-ban nehéz harcok árán mégis elfoglalták, majd hamarosan helyreállították a megrongált falakat. Érsekújvár az oszmánok magyarországi hódításai során utolsóként felállított vilájet központja lett. A fősereg július 7-én zárta körül Érsekújvárat. Gyorsan kiépült az ostromárokrendszer, megkezdődött az ágyúzás, és sikerült lecsapolni a várárok vizét is. Amint az ostromárkok elérték a várárok partját, két töltést kezdtek építeni a falak ellen.
Mindeközben július 31-én a török had elterelő szándékkal körülzárta Esztergomot. Az összehívott haditanács határozata alapján a sereg kisebb része folytatta az ostromot, Károly herceg pedig a haderő zömével Esztergom felmentésére indult. A török elterelő hadművelet így háromszorosan is kudarcot vallott. Egyrészt az ostromlók augusztus 19-én rohammal bevették Érsekújvárat, másrészt a keresztény sereg közeledtének hírére a törököknek fel kellett hagyniuk Esztergom ostromával, harmadrészt augusztus 16-án a táti csatában súlyos vereséget szenvedtek. Érsekújvár bevételével a Dunától északra fekvő területek jórészt megszabadultak a török fenyegetéstől és a császári seregeknek immár semmi sem állta útját, hogy Buda ostromára induljanak.
A császári hadvezetés ki akarta használni e győzelmek lélektani és hadászati előnyeit, ezért a Magyarországon maradt csapatok még ősszel váratlan támadást indítottak a török hátország ellen, hogy Buda összeköttetéseit gyengítsék: elfoglalták Szolnokot, Hevest, Szentmiklóst és Szarvast. Ezzel egy időben, október közepén, újabb fordulat következett be a magyarországi politikai és katonai helyzetben is. Thököly Imrét a váradi pasa elfogatta, mire a Felső-Magyarországi Fejedelemség összeomlott, és a fejedelem 17 000 katonája a császár hűségére tért. Az átállt magyar csapatokkal megerősödött császári hadak pedig folytatták támadásaikat: egy váratlan és merész akcióval decemberben bevették Aradot, majd 1686. január közepén elfogták a törökök Szegedről Budára küldött élelmiszer-szállítmányát.
A kezdeti személyi ellentétek és politikai bizonytalanság ellenére, Buda 1686. évi ostroma végre idejekorán, már június közepén megkezdődött. A mintegy 45 000 főnyi sereg 250 ágyúval Észak és Dél felől támadta a Várat. A törökök is jól felkészültek a védelemre. A 12–14 000 főre becsült védősereg élén a tapasztalt és kemény Abdurrahman pasa állt, aki 1669-ben janicsáragaként részt vett Kandia (Kréta) ostromában, 1683-ban pedig Kamieniecet védte meg a lengyelek ellen. A Várban elegendő élelmiszert és muníciót halmoztak fel, s az ostrom után felvett leltár szerint négyszáznál is több ágyújuk volt a védőknek.
Kép: Buda visszafoglalása 1686
A budai vár ostroma 72 napig tartott, s a nehézségeket jól mutatja, hogy végül minden magyarországi haderőt a helyszínre kellett rendelni, hogy az ellenállást megtörjék. A seregnek meg kellett küzdenie a nehéz tereppel, a nyári forrósággal, a bátran harcoló védőkkel és a felmentő sereggel is. Mindezek ellenére, többszöri kísérlet után, végül szeptember 2-án sikerült kivívni a győzelmet.
Buda elestének hírére másnap Hatvan török őrsége is kapitulált. Követve a visszavonuló török felmentő sereget, a szövetséges haderő is megindult dél felé. Útközben elfoglalták Simontornyát, Pécset, Siklóst, Kaposvárat. Szegedet is megostromolták, a vár felmentésére érkező török csapatokat pedig egy váratlan rajtaütéssel szétverték, egy másik török sereget pedig Zenta mellett futamítottak meg. E vereségek hírére Szeged védői október 23-án feladták a várat. Az 1686. évi hadjárat hatalmas területekről szorította ki a hódítókat, és elvágta a hátországtól Kanizsa, Szigetvár, Székesfehérvár és Eger török őrségeit.
1687 a császár fegyvereinek ismét nagy győzelmeket tartogatott. A császári csapatok laza blokád alá vették Eger várát, magyar portyázó csapatok Lippát gyújtották és dúlták fel. A törökök sem nyugodtak, a váradi pasa Szentjobb, a temesvári pasa pedig Szeged ellen kísérelt meg rajtaütést, de eredmény nélkül.
Bécsben, miként korábban, úgy most sem tudtak dönteni az 1687. évi hadjárat céljairól. Lipót császár Belgrád elfoglalását kívánta, de ezt a hadvezérek ellenezték, mondván, hogy a még török kézen levő várakkal a hátukban ez az akció túl nagy veszélyekkel járna. Kétirányú akciót terveztek, Eszék és Pétervárad ellen, ám ellátási problémák miatt végül július közepén, a Dráva jobb partján, Valpónál egyesült a két seregtest. Ezután támadást intéztek az Eszéknél elsáncolt táborban várakozó török had ellen, de nem jártak sikerrel. Visszavonultak a Dráva túloldalára, a győzelemittas török sereg pedig követte őket és Baranyavárnál foglalt állást. Félő volt, hogy elvágja a szövetségeseket legfőbb utánpótlási útvonaluktól, a Dunától, ezért a Károly herceg Mohács irányában foglalt állást csapataival. Innen a bécsi hadvezetés Siklós lerombolására küldte a sereget, amely augusztus 11-én érte el Nagyharsányt. A nagyvezír e hadmozdulatot visszavonulásnak vélte, ezért elhagyta addigi előnyösebb állását. A török csapatok 11-én szintén megközelítették Nagyharsányt, és a Siklóst Moháccsal összekötő úttól délre erődített táborba szálltak.
Bár minden készen állt a csatára, a császári hadvezérek a terepet nem találták alkalmasnak az összecsapásra, mivel azt sűrű növényzet borította. Ezért másnap a Siklós és Nagyharsány közti nagy nyílt térségre akartak átvonulni, amelyet jobban be lehetett látni. A Károly herceg vezette császári hadtest 12-én hajnalban útra kelt, miközben Bádeni Lajos a bajor hadtesttel helyben maradva biztosította őket. Ám amikor ez is megindult, a török sereg támadásba lendült és megkísérelte kettészakítani a keresztény hadat. A veszélyes akciót sikerült elhárítani, s bajorok a visszafordult császáriakkal együtt felkészültek a csata folytatására. Az újabb török támadási kísérletet már gyorsan visszaverték, majd az egész keresztény haderő megrohamozta a török tábor sáncait. A lovasság menekülésre kényszerítette a szpáhikat, a gyalogság pedig véres kézitusa után behatolt a tábor területére, és elfoglalta a török ágyúkat. A visszatért lovasság két oldalról szorongatta a kétségbeesetten küzdő török gyalogságot, amelynek nagy részét levágták.
A csatát követően a fősereg Erdély elfoglalására indult, egy hadtestet pedig a szerémségi várak ellen küldtek. Vucin, Valpó, Erdőd, Valkóvár, Újlak, Pétervárad, Karlóca, Pozsega hamarosan a keresztények kezébe került, miként a védőktől magára hagyott Eszék is.
Az 1687. év utolsó nagy sikerét Eger visszaszerzése jelentette, amelyet az éhségtől gyötört védők december 18-án adtak át a császári csapatoknak.
Az 1688. évi hadjárat kezdetére a Magyar Királyság területe jórészt felszabadult a török uralom alól. Az egykori Hódoltságban már csak néhány elszigetelt, a támadás fő irányából kieső erődítmény, mint a már szoros blokád alá vont Székesfehérvár, Szigetvár, Kanizsa, illetve a később körülzárt Várad és Gyula, valamint a Temesköz és Temesvár maradt török kézen. Január 14-én Thököly hatalmának utolsó magyarországi bástyája, a Zrínyi Ilona által védett Munkács is megnyitotta kapuit Caraffa tábornagy csapatai előtt. Szigetvárat áprilisban zárták körül a császári csapatok, Székesfehérvár pedig május 19-én kapitulált.
Az előző évi hadi sikerek, valamint az Oszmán Birodalomban kitört lázadás nyomán az Udvari Haditanács úgy vélte, hogy kedvező lehetőség nyílt Magyarország déli kapuja, Belgrád – az egykori Nándorfehérvár – visszavételére. A szövetséges haderő 1688. augusztus 11-én fogott hozzá az ostromműveletekhez, augusztus 17-én pedig megkezdődött a vár ágyúzása. Szeptember 4-re a déli várfalon két, rohamra alkalmas rés keletkezett. A fő támadást ezek ellen vezették, miközben három további elterelő akciót indítottak. A szeptember 6-án megkezdett támadás során a két fő rohamoszlop csak nagy erőfeszítések árán tudott áttörni a réseken és ott elsáncolni magát. Ám eközben a figyelemelterelő akciók váratlan sikerrel jártak, így a szövetséges csapatok immár öt irányból szorongatták a védőket, mire azok a fellegvárba húzódtak vissza. Midőn Ibrahim pasa számba vette veszteségeit, kiderült, hogy az eredeti, mintegy 7000 fős védőseregéből csupán 250 harcképes katonája maradt. A pasa belátta, hogy a küzdelem folytatása teljesen reménytelen, ezért feladta a várat.
Miksa Emánuel bajor választófejedelem, fővezér elfogadta a felkínált megadást, s Belgrád tornyain 167 év után ismét keresztény zászlók lengtek. A vereség hírére a törökök Szendrőt és Galambócot is kiürítették, amelyeket a szövetséges csapatok haladéktalanul megszálltak és megerősítettek.
Miközben Belgrád ostroma zajlott, Bádeni Lajos támadást intézett a horvátországi várak és az ott állomásozó török erők ellen. Elfoglalta Kostajnicát, Dubicát, Gradiškát, Zvornikot, Brodnál és Derventnél pedig kétszer is győzött az ellenség felett.
A sikerekben bővelkedő esztendők után azonban változás állt be a nemzetközi politikai és katonai helyzetben. A császári haderő győzelmeire és Lipót hatalmának ilyetén megnövekedésére féltékeny XIV. Lajos, megszegve a fegyverszünetet, lerohanta Pfalzot és elfoglalta a kulcsfontosságú Philippsburgot. A Habsburgok ismét kétfrontos háborúra kényszerültek, ami nagyban hozzájárult a Magyarországon folyó küzdelem elhúzódásához.