Alla metà di settembre, la folgorante avanzata degli Alleati sul fronte occidentale iniziò a mostrare segni di rallentamento. La decisione di Hitler di lasciare forti guarnigioni a presidiare i porti lungo la costa occidentale della Francia e nella zona dello stretto di Dover, se da un lato lasciò tagliati fuori migliaia di soldati tedeschi, dall'altro impedì agli anglo-statunitensi di disporre di scali dove scaricare i rifornimenti, i quali dovevano essere convogliati unicamente attraverso i porti della Normandia o della Provenza lungo strade e ferrovie sconvolte dalla guerra. Ciò provocò un progressivo calo del flusso di rifornimenti alle armate sul campo, ora organizzate in tre gruppi d'armate sotto la direzione del generale Eisenowher (responsabile del Supreme Headquarters Allied Expeditionary Force): a nord in Belgio gli anglo-canadesi del 21st Army Group di Montgomery, al centro in Lorena gli statunitensi del Twelfth United States Army Group di Bradley e a sud in Alsazia i franco-statunitensi del Sixth United States Army Group del generale Jacob Devers.
Il rallentamento del ritmo dell'avanzata consentì ai tedeschi di radunare le forze e riprendersi. Il 17 settembre Montgomery lanciò l'operazione Market Garden, un attacco combinato terrestre e aviotrasportato per occupare in un sol colpo tutti i ponti strategici sui vari rami del Reno nei Paesi Bassi; l'operazione, troppo ambiziosa, fallì quando i tedeschi negarono ai britannici la conquista del ponte di Arnhem, impedendo lo sfondamento finale. Maggior successo ebbe la campagna intrapresa dai canadesi a partire da ottobre per liberare l'estuario del fiume Schelda, via d'accesso al porto di Anversa: la battaglia della Schelda si concluse in novembre, aprendo una vitale rotta di rifornimento per gli Alleati. Le forze statunitensi erano nel frattempo impegnate in aspri scontri al confine franco-tedesco, dove la Wehrmacht poteva appoggiarsi alle vecchie fortificazioni della Linea Sigfrido: dopo aver infranto un contrattacco tedesco nel corso della battaglia di Arracourt alla fine di settembre, la 3ª Armata di Patton si ritrovò invischiata in sanguinosi scontri a Metz e nella Foresta di Hürtgen, venendo alla fine bloccata; maggior successo ebbero gli attacchi della 1ª Armata statunitense di Courtney Hodges, che in ottobre conquistò Aquisgrana aprendo una falla nella Linea Sigfrido. I tedeschi persero altro terreno, ma nel complesso riuscirono a stabilizzare solidamente il fronte occidentale.
Nel frattempo, Hitler aveva insistito per preparare una grande controffensiva sul fronte occidentale per dicembre, quando le pessime condizioni meteo potevano impedire agli Alleati di far valere la loro superiorità aerea. Il progetto era più che ambizioso: tre armate tedesche, rinforzate da unità corazzate richiamate anche dal fronte orientale, avrebbero attaccato nella regione delle Ardenne, impervia ma debolmente presidiata dalla 1ª Armata statunitense in quanto ritenuta un settore tranquillo del fronte; lo scopo dell'attacco era quello di raggiungere il fiume Mosa, piegare a nord e riconquistare Anversa, chiudendo in un'enorme sacca le forze alleate del 21st Army Group.
L'offensiva tedesca scattò il 16 dicembre, cogliendo completamente di sorpresa i comandi alleati: alcune colonne corazzate tedesche penetrarono in profondità, superando i deboli sbarramenti statunitensi, catturando più di 6 000 prigionieri sul massiccio dell'Eifel e avanzando verso Bastogne. I panzer di testa, rallentati dal terreno boscoso e dalle intemperie climatiche che avevano anche impedito l'intervento dell'aviazione alleata, giunsero in vista della Mosa il 24 dicembre. Tuttavia, grazie alla coraggiosa resistenza di alcuni reparti statunitensi assediati a Bastogne e alla scarsità di rifornimenti tedeschi, in particolar modo di carburante, gli Alleati poterono bloccare l'offensiva e passare al contrattacco: da nord le unità di Montgomery ricacciarono indietro i tedeschi nel corso della battaglia di Ciney, mentre a sud le forze corazzate di Patton liberarono Bastogne dall'assedio il 26 dicembre. A metà gennaio 1945 la battaglia, sanguinosa per entrambe le parti con circa 80 000 perdite a testa, era finita: i contrattacchi alleati costrinsero i tedeschi ad abbandonare il terreno conquistato e a ritornare sulle posizioni di partenza.