Eesti hoidmine oli Saksa väejuhatusele oluline. Esiteks takistas see Balti Laevastiku väljapääsu Läänemerele, teiseks oli Eesti hoidmine oluline Soome sõjas hoidmise pärast. Kolmandaks vajas Saksa sõjamajandus Eesti põlevkiviõli.  1944. a jaanuari lõpus jõudis Punaarmee Narva jõeni.  Narva suunal tungisid peale 8. ja 59. armee ning 2. löögiarmee laskurkorpused. Wehrmachti 18. armee rinne lõhuti kaheks: 18. armee põhijõud jäid Peipsi ja Pihkva järve taha. Narva rindelõigus moodustati 2. veebruaril LIV armeekorpuse baasil iseseisev armeegrupp, mille ülemjuhatajaks määrati jalaväekindral Johannes Friessner ja mis 23. veebruaril nimetati armeegrupiks Narva. Alates juulist oli armeegrupi ülemjuhataja jalaväekindral Anton Grasser.  Alguses kuulusid armeegruppi 18. armee parema tiiva  kaotusi kandnud üksused: 61., 170., 225. ja 227. jalaväediviis ning Luftwaffe 9. ja 10. välidiviis. Veebruaris paisati Narva lõiku lisajõud: 11. ja 214. jalaväediviis, soomusgrenaderidiviis Feldherrnhalle ja III Germaani SS-Soomuskorpuse üksused: 11. SS-diviis Nordland ja 4. SS-brigaad Nederland. Soomuskorpusele allutati ka 20. Eesti SS-diviis. Narva rindele suunati ka teised eesti üksused: politseipataljonid nr 29-32, 658. ja 659. idapataljon ning piirikaitserügement Tallinn, veidi hiljem ka 2. ja 3.  piirikaitserügement.  Narvast lõunas tungis Punaarmee 8. armee üle jõe ja moodustas Auvere tugiala. 14. veebruaril saadeti Saksa tagalasse kaks pataljonisuurust dessantüksust: üks Merikülas põhjarannikul ja teine Meerapalus Peipsi kaldal. Mõlemad hävitati mõne päevaga. Veebruari lõpus ja märtsi alguses likvideerisid eesti, norra, taani ja hollandi Relva-SS rügemendid Riigikülas, Vepskülas ja Siivertsis Punaarmee sillapead Narva jõe läänekaldal. Seejärel lahingud Narva rindel soikusid.  Juuli teisel poolel  kavatses Saksa väejuhatus Narva maha jätta ja taanduda Sinimägedesse rajatud Tannenbergi kaitseliinile, et lühendada Auvere platsdarmi tõttu pikaks veninud rinnet. 24. juulil alustas Punaarmee pealetungi: Narvat üritas põhjast sisse piirata 2. löögiarmee, Auvere tugialalt ründas 8. armee. Raskete lahingutega taandusid kaitses olnud 20. Eesti SS-diviis, 11. SS-diviis Nordland ja 4. SS-brigaad Nederland Sinimägedesse. Narva jäeti maha 26. juulil. Punaarmee kandis raskeid kaotusi, kuid kaotusi oli ka Saksa  poolel: Nederlandi 48. rügement piirati sisse ja purustati täielikult, Eesti SS-diviisi 46. rügement kaotas samuti palju mehi, selle III pataljon purustati. Sinimägedes jätkusid verised lahingud kuni 9. augustini. Punaarmee kaotas 109. ja 122. laskurkorpuse, raskeid kaotusi kandsid ka nende asemele saadetud 110. ja 124. laskurkorpus. Tõsiseid kaotusi kandis ka Saksa pool: kõrgematest ohvitseridest langesid norralaste, taanlaste ja hollandlaste rügemendiülemad ning Nordlandi diviisi ülem SS-Gruppenführer Fritz  von Scholz. Eestlased kaotasid kaks pataljoniülemat: langesid 47. SS-rügemendi I pataljoni ülem Georg Sooden ja 20. füsiljeepataljoni (endine Narva pataljon) ülema kt Oskar Ruut. Punaarmee Sinimägedes läbi murda ei suutnud.  Samal ajal ründas Punaarmee 3. Balti rinne Wehrmachti 18. armee positsioone Lõuna-Eestis ja Põhja-Lätis. 10. augustil murti läbi Marienburgi kaitseliin Peipsi-Petseri-Aluksne joonel. 13. augustil vallutas Punaarmee Võru. Lõuna-Eestis olid kaitsel XXVIII ja XXXVIII armeekorpuse kuus  diviisi ja väiksemad üksused. Tagalas paiknes 207. julgestusdiviis, mille staap oli 1941. a suvest alates Tartus. Sellele allusid ka 1. ja 5. eesti piirikaitserügement ning 42. eesti politsei-pioneeripataljon. 12. augustil saatis 18. armee juhatus lahingusse ka Omakaitse Viljandi, Pärnu, Valga, Lääne ja Järva malevate pataljonid. Punaarmee ründas 1. löögiarmee ning 67. ja 54. armee väekoondistega.  14. augustil suunas Saksa väejuhatus Eestisse II armeekorpuse (ülemjuhataja jalaväekindral Wilhelm  Hasse), millele allutati 31. grenaderidiviis, 87. jalaväediviis ja mõned väiksemad üksused, mis võitlesid Karula-Sangaste piirkonnas. Alates 21. augustist koondas Punaarmee Karula-Sangaste piirkonda 10 laskurdiviisi ja 5 tankikoondist, mis tungisid Tartu suunas. Hyazinth krahv Strachwitzi tankigrupi vasturünnak Punaarmee tankikoondiste vastu 24. augustil Elva lähedal Tamsal jäi eduta. 25. augustil tungis Punaarmee Tartusse. Samal päeval anti II armeekorpus armeegrupi Narva alluvusse ülesandega hoida rinnet  Emajõel Võrtsjärvest Peipsini.  Armeegrupist Narva oli 14. augustil Emajõe rindele suunatud Jürgen Wagneri (4. SS-brigaadi Nederland ülem) võitlusgrupp, millesse suurematest üksustest kuulusid 11. jalaväediviisi 23. rügement, 5. SS-ründebrigaad Wallonien (ülem Léon Degrelle) ja 11. SS-diviisi Nordland suurtükidivisjon. Võitlusgrupile anti Emajõe rindel juurde 207. julgestusdiviis koos sellele allutatud üksustega, Paul Venti võitlusgrupp (eesti 45. SS-rügemendi I pataljon ja eesti 46. SS-rügemendi allesjäänud  mehed), 37. ja 38. eesti politseipataljon ning Alfons Rebase võitlusgrupp (eesti 47. SS-rügemendi II pataljon ning 11. jalaväediviisi kergesuurtükkide divisjon ja füsiljeepataljon). 26. augustil toodi Emajõe rindele ka soomepoiste pataljon, mis anti enne lahingut eesti 46. SS-rügemendi III pataljoniks.  Pärast Tartu vallutamist oli Punaarmee Käreveres üle Emajõe tunginud. 28.-30. augustil likvideerisid 87. jalaväediviis koos soomepoiste pataljoni ning 37. ja 38. eesti politseipataljoniga Kärevere  sillapea. Selle eest märgiti need üksused ära Wehrmachti ülemjuhatuse rindeteates. Saksa vägede katsed Tartut tagasi vallutada jäid edutuks. Lahingutegevus Emajõe rindel soikus kaheks nädalaks.  Punaarmee väejuhatus tõi Emajõe rindele 3. Balti rinde väekoondiste asemele Leningradi rinde 2. löögiarmee, mille koosseisus oli Punaarmee 8. Eesti laskurkorpus ja 108., 116. ning 118. laskurkorpus. Saksa väejuhatus saatis Emajõe rindele Saksamaalt 563. rahvagrenaderidiviisi, mis võttis üle kaitse Emajõe  ülemjooksul. 14. septembril algas 1., 2. ja 3. Balti rinde pealetung Riia suunas eesmärgiga väegrupp Nord emamaast ära lõigata.  17. septembril algas 2. löögiarmee pealetung Emajõel. Pealöögi suunal olnud 1. eesti piirikaitserügement purustati täielikult. Samal päeval hävitas 90. laskurdiviis 207. julgestusdiviisi staabi, diviisiülem kindralmajor Bogislaus krahv von Schwerin sai surma. Saksa üksused taandusid loodesse. Emajõe rindele appi määratud 300. diviisist, millele allusid 2., 3., 4. ja 6. eesti  piirikaitserügement, jõudis pärale vaid staap, mis võttis üle 207. julgestusdiviisi juhtimise. 18. septembril sai Mustvees Punaarmee suurtükipaatide tules surma kindralmajor Paul Gallas, kes juhtis 1. ja 5. eesti piirikaitserügemendist moodustatud võitlusgruppi. Wagneri võitlusgrupp, 87. jalaväediviis, 563. rahvagrenaderidiviis ja 207. julgestusdiviisi riismed taandusid ümber Võrtsjärve Eestist välja. Punaarmee tungis edasi Tallinna peale ja Lääne-Eestisse.  16. septembril andis Hitler loa Mandri-Eesti  evakueerimiseks (nn plaan Aster). 18. septembril hakkasid Saksa väed oma positsioone maha jätma. Eesti piirikaitserügemendid ja mõned 20. Eesti SS-diviisi pataljonid ning väiksemad Saksa üksused, kes olid Narva rindel, ei jõudnud taganeda ja sattusid lahingusse Emajõelt pealetungivate Punaarmee üksustega. 20. septembril toimus Avinurmes kokkupõrge nende ja Punaarmee 8. Eesti laskurkorpuse 45. üksiku tankipolgu vahel. Saksa üksuste taganemistee lõigati ära. Umbes 50 raskemini haavatud Saksa mundris eesti sõjaväelast  jäeti Avinurme kirikusse, kus punaväelased nad granaatidega tapsid. 21. septembril kohtusid taganevad eesti sõjaväelased Porkunis Punaarmee 249. Eesti laskurdiviisi allüksustega. Lahingus hukkus umbes 400 ja langes vangi 700 Saksa mundris eestlast.  22. septembril jätsid sakslased Tallinna maha. Osa eesti sõjaväelasi, nende hulgas eriti Kehrast tulnud soomepoiste II pataljoni mehed ja Johan Pitka võitlusüksuse liikmed, ründasid taganevaid sakslasi, et neilt relvad ära võtta ja vastupanu jätkata. 26.  septembri ajaleht Uusi Suomi teatas, et 21. ja 22. septembril lehvis Toompeal sini-must-valge lipp. Kokkupõrked jätkusid Tallinna sadamas kuni 22. septembri varahommikuni. Evakueerimist julgestanud 531. mereväe suurtükidivisjoni ülem teatas kokkupõrgetest eesti "terroristidega": 25 eestlast tapeti, 150 relvitustati ja viidi Saksamaale. 22. septembril sisenes sakslaste poolt maha jäetud Tallinna Punaarmee 8. Eesti laskurkorpuse eelüksus. Pärast Tallinna mahajätmist panid väikesed eestlaste võitlusgrupid  Punaarmeele vastu veel Pääskülas, Keila lähedal ja mujal.  24. septembril jätsid sakslased maha Haapsalu, ka seal toimusid kokkupõrked eesti sõjaväelaste ja Saksa mereväe korrakaitseüksuse vahel. Kaks pantvangi võetud eestlast lasti maha. Rohuküla platsdarmil jäeti taganemist katma kaks turkmeeni pataljoni. Punaarmee vallutas erilise vastupanuta 29.-30. septembril Muhu ja 2.-3. oktoobril Hiiumaa.  5. oktoobril tegi 8. Eesti Laskurkorpus koos 109. laskurkorpusega Muhust dessandi Saaremaale, mida  kaitsesid 16. armee 23. jalaväediviis, 218. jalaväediviis ja 12. Luftwaffe välidiviis, mereväelased ning väiksemad üksused. Saksa väejuhatus pidas oluliseks Sõrve kaitsmist, et võita aega Kuramaa ranniku kindlustamiseks. 7. oktoobril jätsid Saksa väed Kuressaare maha ja sõjategevus koondus Sõrve poolsaarele, kus oli 16 000 Saksa sõjaväelast. Punaarmee 8. Eesti laskurkorpus pidas Saaremaal kaks suuremat lahingut. Tehumardi öölahingus 8. oktoobril põrkasid kokku 67. Saksa jalaväerügement ja 249. Eesti laskurdiviis.  Ebaõnnestunud Vintri dessandis 12. oktoobril hukkus sadu ja langes vangi 215 7. Eesti laskurdiviisi 300. polgu sõjaväelast. 16. novembril oli Sõrves rohkem kui 10 000 Saksa sõjaväelast. 20. novembril langes Sõrves 531. mereväe-suurtükidivisjoni ülem, Rüütliristi kavaler korvetikapten Hossfeld. Tema divisjon oli julgestanud kõigi olulisemate Eesti tugipunktide evakueerimist. Viimased Saksa sõjaväelased evakueeriti Sõrvest 24. novembri varahommikul.