Contraofensiva trupelor germane și ungare, începută la 5 septembrie 1944 în podișul transilvan și la 13 septembrie 1944 în Banat și Crișana, cu intenția de a stabili linia frontului pe coronamentul Carpaților Meridionali și de a ocupa întreaga Transilvanie, a întârziat momentul eliberării, dar nu l-a putut împiedica. Acesta deoarece, fără să mai aștepte sosirea trupelor sovietice la nord de munți, Armata 4 română a reuşit (între 5 şi 8 septembrie) să oprească trupele germane şi ungare pe aliniamentul Sighişoara, Ormeniş, Târnăveni, Veseuşi, Alecuş, Gacova, departe de trecătorile Carpaţilor Meridionali vizate de inamic. Mai mult, din proprie iniţiativă, generalul Gheorghe Avramescu a ordonat (9 septembrie) trecerea la contraofensivă, până în seara zilei următoare trupele române ajungând pe alinamentul nord Târnăveni, sud Luduş, cursul Mureşului, până la sud de Unirea, nord Mirăslău, vest Gacova, la 15 - 20 km sud de linia vremelnică de demarcaţie româno-ungară. După sosirea în zonă a primelor unități sovietice din Armata 6 de tancuri şi din Armata 27, luptele au continuat, fără răgaz, pe direcţiile Târnăveni-Ungheni şi Aiud-Turda, până la mijlocul lunii septembrie, trupele române și sovietice ajungând pe aliniamentul râului Mureș (la vest de Târgu Mureș). Concomitent, la nord de Brașov, Corpul de munte român, comandat de generalul Ion Dumitrache, Divizia „Tudor Vladimirescu” (formată pe teritoriul U.R.S.S. din prizonieri de război români) şi Divizia 202 infanterie sovietică, au atacat spre Sfântu Gheorghe, înfrângând trupele germane şi ungare din partea de sud-est a Transilvaniei, eliberând mai multe localităţi româneşti (între care şi oraşul Sfântu Gheorghe), respingând inamicul din „intrândul secuiesc” și înaintând spre văile Nirajului și Mureșului. La 28 septembrie 1944, vânătorii de munte români au eliberat oraşul Târgu Mureş.
Cele mai grele lupte s-au dat pe cursul râului Mureș, între Chirileu şi Iernut, în special în zona Dealului Sângeorgiu - o înălţime masivă, în formă de amfiteatru, cu o deschidere de 5 km şi cu flancurile sprijinite pe Mureş, puternic apărată de un inamic, foarte bine pregătit şi dotat, care a ştiut să valorifice excelent avantajele oferite de teren. Insistenţa comandamentului sovietic de a cuceri această înălţime prin atacuri frontale, fără a pune la dispoziţie mijloacele de întărire necesare (aviaţie, artilerie, tancuri etc.) a făcut ca Armata 4 română să înregistreze, într-o perioadă de timp scurtă (în special între 22 şi 29 septembrie) mari pierderi umane (6 753 militari: 897 morţi, 4 118 răniţi şi 1 738 dispăruţi, după datele aflate în arhiva Armatei a 4-a).
Relevând condiţiile în care Armata a 4-a română a fost pusă să lupte în zona Dealului Sângeorgiu de către comandamentul Armatei 27 sovietice, colonelul Nicolae Dragomir consemna (1 octombrie 1944) că misiunea încredinţată a fost „disproporţionată faţă de puterea armatei [...] pierderile suferite în atac, în capul de pod Sângeorgiu, depăşesc prea mult rezultatele, care au fost minime şi chiar nule, cu toată reluarea repetată a acestor atacuri ordonate zilnic de comandamentul rus. [...] Propunerile armatei pe care le-am prezentat personal comandamentului rus de la acea dată, cu toată stăruinţa şi cu date asupra pierderilor - mai preciza ofițerul român - nu au avut aprobarea acelui comandament, care zilnic a repetat ordinul de atac pentru cucerirea cotelor 409, 495, 463 şi 421. În primul rând şi pentru lărgirea capului de pod până la cotele 435 şi 417”. În finalul intervenţiei sale pe lângă comandantul Armatei a 4-a, colonelul Nicolae Dragomir cerea ca „înainte ca pierderile, fără folos, să ducă la anihilarea puterilor armatei” să se întervină energic pe lângă Comandamentul suprem sovietic pentru a se da marilor unităţi române misiuni corespunzătoare capacităţii lor de luptă. În aceeaşi ordine de idei, generalul Gheorghe Mihail, şeful Marelui Stat Major român, asigura pe mareşalul R.I.Malinovski, comandantul Frontului 2 ucrainean, „de marea noastră dorinţă de a alunga cât mai repede inamicul spre vest, departe de graniţă, şi de a lua parte cât mai largă la această acţiune”, dar îi cerea, în acelaşi timp, să ordone generalului S.G.Trofimenko „să nu mai dea Armatei a 4-a misiuni disproporţionate cu capacitatea ei combativă şi fără să-i mai asigure mijloace suplimentare în care de luptă, armament anticar, artilerie şi avioane absolut necesare”.
În acest timp, Corpul 6 armată român, care acționa la est de Turda, a înlesnit, cu forţele de la flancul stâng, cucerirea oraşului de către unităţile Corpului 104 armată sovietic. La vest de Turda, a luptat Corpul 35 armată sovietic în compunerea căruia a acţionat Divizia 2 munte română (pe direcţia Băişoara - Gilău). Contraofensivei inamice din Banat şi Crişana (începută 13 septembrie 1944) i s-a opus, inițial, Armata 1-a română, comandată de generalul Nicolae Macici, care a făcut ca trupele germane și ungare, chiar dacă au reușit să ocupe Aradul, să nu poată parcurge decât 25-60 de km din cei 75-180 km câţi erau până la obiectivele stabilite iniţial. Între timp, sub acoperirea realizată de marile unităţi române, în zonă au ajuns şi primele unități sovietice, careau intrat imediat în luptă schimbând radical raportul de forţe. Acest lucru a permis trupelor române și sovietice să facă față unei alte contraofensive germano-ungare, declanșată la 28 septembrie 1944 „Zigeunerbaron (Voievodul ţiganilor”) în Crișana, cu intenția de a ajunge la Porţile de Fier şi în trecătoarea Turnu Roşu. Prin lupte grele, diviziile „Tudor Vladimirescu” şi 337 infanterie sovietică au reușit, să oprească trupele inamice pe alinamentul Mierău, Şuaieu, după care, între 2 şi 5 octombrie, au trecut la contraatac şi au recucerit aliniamentul Apateu, sud Leş, Sânmihaiul Român. Între timp, la 29 septembrie, trupele germane atacaseră puternic și spre Salonta în fâşiile de acțiune ale divizilor 78 infanterie sovietică, 3 munte şi 1 infanterie-instrucţie române, care au rezistat prin lupte grele de apărare. O contribuţie importantă la oprirea contraofensivei inamice a avut-o Armata 6 de tancuri sovietică ale cărei unităţi, acţionând în cooperare cu un detaşament român, au eliberat oraşul Salonta.
Preluând inițiativa, Divizia 1 infanterie-instrucţie şi Divizia 203 infanterie sovietică au acţionat ofensiv, pe valea Crişului Alb (de la 20 septembrie), forțele principale ale Armatei 53 sovietice au înaintat pe valea Mureşului, eliberând Aradul (în noaptea de 21 spre 22 septembrie) şi respingând apoi trupele germane şi ungare dincolo de graniţă. Alături de unităţile sovietice au luptat şi numeroase subunităţi de grăniceri români. Flancul stâng al Armatei 53 a fost asigurat, la sud de Timişoara, de Corpul 7 armată român, care a reluat ofensiva în noaptea de 24 spre 25 septembrie spre frontiera româno-iugoslavă, pe direcţia Petrovgrad. În sudul Banatului, Brigada 19 infanterie a cooperat cu Divizia 49 infanterie sovietică, o compania din această mare unitate luptând şi pe teritoriul iugoslav până la Pancovo. În final, operaţia „Zigeunerbaron” a înregistrat un eşec total, fiind eliminată astfel ameninţarea pe care inamicul o proiecta asupra comunicaţiilor principale care duceau spre munţi. Concomitent au fost create condiţii favorabile pentru reluarea ofensivei proprii, atât la vest de Carpaţii Occidentali, cât şi în podişul transilvan. Pentru înfrângerea forţelor germane şi ungare din partea de nord-vest a României, din Ucraina Subcarpatică şi din estul Ungariei, Comandamentul suprem sovietic a hotărât să execute, cu Frontul 2 ucrainean, operaţia „Debreţin”. Ofensiva a fost declanşată, cu trupele de la centrul Frontului 2 ucrainean, care au rupt, între 6 şi 13 octombrie, apărarea inamicului între Salonta şi Makó, şi au pătruns adânc spre Debreţin, în timp ce la flancul stâng, mari unităţi din Armata 53 au fost dirijate spre cursul mijlociu al Tisei, între Szolnok şi Szeghed, constituind câteva capete de pod.
În podişul transilvan, ofensiva a început la 9 octombrie 1944, acţiunea principală revenind Armatei 4-a române şi Armatei 27 sovietice (în compunerea căreia acţionau şi diviziile 2 munte şi 18 infanterie române). In mod preconceput, orașul Cluj nu a fost inclus în zona de acțiune a vreunei divizii române. Cu toate acestea, diviziile 118 infanterie și 2 munte române au contribuit, prin atacuri frontale și manevre, la eliberarea Clujului (11 octombrie 1944). A doua zi (12 octombrie 1944), diviziile „Tudor Vladimirescu” şi 337 infanterie sovietică au eliberat Oradea, în timp ce Divizia 3 munte a eliberat (până la 13 octombrie), întregul spaţiu situat la vest de Oradea, continuând ofensiva spre Debreţin. După eliberarea Clujului, luptele au continuat la vest de Someş, Armata 4 română înaintând pe direcţia Bonţida - Jibou – Carei, iar Armata 27 sovietică pe direcţia Cluj - Huedin - Valea lui Mihai. Concomitent, Armata 7 de gardă sovietică a ajuns pe Someşul Mare, la sud şi est de Dej, după care a fost regrupată în Câmpia Tisei, iar Armata 40 sovietică a coborât în depresiunea Maramureşului şi a eliberat Sighetul.
Acţionând într-un teren frământat şi în parte acoperit, Armata a 4-a a reuşit, în urma unor lupte grele duse în munţii Lăpuş, Meseş şi Făget, să iasă (20 octombrie) în Câmpia Tisei pe aliniamentul Gerăuşa, Stâna, Babţa, Bogdand, Chieşd, după ce parcursese circa 80 km într-un ritm de 11 km în 24 de ore. Şi de această dată s-au realizat acţiuni de luptă comune, diviziile 1 cavalerie română şi 232 infanterie sovietică, contribuind, prin acţiunea de la Fărcaşa, la deschiderea comunicaţiei de pătrundere a Armatei 40 sovietice spre Satu Mare. La rându-i, Divizia 11 infanterie a înlesnit, la sud de Satu Mare, înaintarea Diviziei 133 infanterie sovietice, care a eliberat oraşul în noaptea de 24 spre 25 octombrie 1944. La scurt timp (25 octombrie), diviziile Corpului 6 armată aveau să elibereze celălalt mare oraş din nord-vestul României, Careiul, și să finalizeze eliberarea părții de vest României de sub ocupația ungară. Victoria remarcabilă de acum 70 de ani a făcut ca întregul popor român să trăiască și să simtă clipa înălțătoare a triumfului. Elogiind virtuțile ostășești dovedite în luptă de militarii români, generalul Gheorghe Avramescu, comandantul Armatei a 4-a, conchidea într-un ordin de zi: „Peste veacuri veți fi slăviți, voi ofițerii și ostașii, care ați eliberat Ardealul”.
La fel ca în Basarabia și nordul Bucovinei, în iunie-iulie 1941, şi de această dată, armata română a fost sprijinită de populaţia civilă din zonă, care deseori nu a pregetat să pună mână pe arme şi să lupte alături de ostaşi. Expresii ca „Vin ai noştri!”, „Bine aţi venit fraţilor!” erau doar câteva din cele spuse, din om în om, de la Cernăuţi la Hotin, de la Chişinău la Cetatea Albă sau dela Sfântu Gheorghe la Cluj, Carei şi Satu Mare. După datina străbună, atât pe melegurile Basarabiei şi Bucovinei, în 1941, cât şi pe meleagurile transilvănene, militarilor li s-a oferit un pahar cu vin sau o cană cu apă proaspătă, li s-au făcut urări de succes şi izbândă şi s-a cântat, sub faldurile tricolorului, nemuritorul „Deşteaptă-te, române!”. În multe locuri, bucuria eliberării a fost umbrită de crimele şi samavolniciile ocupanţilor. Refacerea integrităţii teritoriale în vestul ţării a anulat nedreptatea făcută României cu patru ani în urmă, ţara necîştigând un teritoriu care nu-i aparţinea, ci reintrând, doar, în posesia spaţiului istoric ce-i fusese răpit prin forţă şi dictat. Ca şi în cazul Basarabiei şi a nordului Bucovinei în 1941, acțiunea armatei române în Transilvania a reprezentat un act eliberator, în acord cu dreptatea istorică, reântregirea teritorială fiind confirmată (cu dificultate) pe plan internaţional, datorită politicii revizioniste ungare, de către Conferinţa de pace de la Paris din 1946 şi, de jure, prin prevederile Tratatului de Pace din 1947. Raporturile de putere de la sfârşitul războiului şi interesele marilor puteri au făcut ca despre celelalte pierderi teritoriale românești din 1940 să nu se mai vorbească multă vreme, deşi ele au constituit şi constitue o realitate la fel de evidentă.