10月份一個月中,斯大林格勒一直進行著激烈的巷戰。蘇軍又有6個以上的滿員師經伏爾加河進入斯大林格勒。德軍逐屋戰鬥,從地麵和地下的廢墟中找路前進,所以也被稱為“老鼠戰爭”。這場會戰已經變成了一個麵子問題。對斯大林來說,是決不能讓這座以自己名字命名的城市落入德軍之手的。他親自下令葉廖緬科上將,要求在任何情況下都要堅守該城。每一座房屋,隻要有蘇聯軍人,哪怕隻有一個人,也要成為敵人攻不破的堡壘。而對希特勒來說,斯大林格勒的精神價值已超過了其戰略價值,非要攻陷它不可。當新任陸軍總參謀長蔡茨勒將軍向小心地向他指出第6集團軍北翼漫長的頓河戰線麵臨著危險,建議將第6集團軍撤到頓河河曲。希特勒嚴厲地回答說:“德國士兵到了哪裏,就要守到哪裏!”
至11月初,德軍始終未能完全占領斯大林格勒。眼看天氣又要冷下來,希特勒要求幾乎沒有多少越冬物資儲備的保盧斯在冬天來臨之前拿下斯大林格勒。11月11日,保盧斯在斯大林格勒城區內,向蘇軍據守的陣地發動了最後一次大規模進攻。德軍以5個步兵師、2個裝甲師和2個工兵營在寬5公裏的正麵上發起強攻。戰鬥隊形高度密集。一天之內,蘇德兩軍為爭奪每寸土地、每一座房屋,都進行了異常激烈的戰鬥,雙方傷亡慘重。德軍雖然在該城南部到達了伏爾加河,但部隊已疲憊不堪,保盧斯被迫於次日停止了進攻,修整部隊。而幾天後,蘇軍就發起了全線大反攻。
蘇軍最高統帥部自9月底開始準備大反攻,並向斯大林格勒方向秘密調集了大量兵力。至11月中旬,在斯大林格勒地域的蘇軍計3個方麵軍143個師110.6萬人,計15500門火炮和迫擊炮,1463輛坦克和強擊火炮,1350架飛機。11月13日,斯大林批準了朱可夫和華西列夫斯基擬製反攻計劃,並親自給這個計劃取代號為“烏蘭”。該計劃規定:西南方麵軍由圖瓦京中將指揮,其任務是從頓河西岸的謝拉莫菲維奇和克利茨卡亞地域橋頭陣地實施主攻,突破羅馬利亞第3集團軍防禦,直插頓河東岸的卡拉奇;斯大林格勒方麵軍由葉廖緬科上將指揮,其任務是從斯大林格勒南麵向西北突擊,突破羅馬利亞第4集團軍防禦,與西南方麵軍在卡拉奇會師,完成對德第6集團軍的合圍;頓河方麵軍由羅科索夫斯基中將指揮,其任務是從斯大林格勒西北麵向東南實施輔助性突擊,掩護西南方麵軍的主攻。反攻日期定為:西南方麵軍和頓河方麵軍為11月19日,斯大林格勒方麵軍為11月20日
11月19日,圖瓦京的西南方麵軍和羅科索夫斯基的頓河的方麵軍在紛飛的大雪中發起了反攻,很快突破了負責掩護德第6集團軍側翼安全的羅馬利亞第3集團軍的陣地,一天之內向前推進了20多公裏。20日,葉廖緬科的斯大林格勒方麵軍也轉入反攻,突破了羅馬利亞第4集團軍的防線,向北直趨卡拉奇。22日,西南方麵軍開始分批渡過頓河。23日,西南方麵軍和斯大林格勒方麵軍在卡拉奇會師,從而切斷了德第6集團軍的後方交通線。至30日,蘇軍3個方麵軍將德第6集團軍的第4、第8、第11、第51步兵軍和第14裝甲軍計5個軍22個師,約27萬人合圍在斯大林格勒1500平方公裏的地域內。
當德軍最高統帥部接到蘇軍發起反攻的消息後,陸軍總參謀長蔡茨勒將軍力勸希特勒下令保盧斯撤出斯大林格勒,他幾乎已經把元首說服了。然而,空軍司令戈林元帥卻向希特勒保證說,他可以保證第6集團軍的空中補給,要多少有多少。希特勒遂下令保盧斯堅守陣地,並命令他這個集團軍今後改稱“斯大林堡壘”集團軍。
11月21日,希特勒下令將曼施泰因元帥的第11集團軍擴建為頓河集團軍群,由曼施泰因元帥任司令,並把保盧斯第6集團軍、霍特第4裝甲集團軍和羅馬利亞第3、第4集團軍交與他指揮。希特勒在命令中指示:“頓河集團軍群當前的任務,就是使敵軍的攻勢停頓,並奪回原已失去的陣地。”這實際上是一個不可能完成的任務。曼施泰因認為,德軍唯一成功的機會在於第6集團軍從斯大林格勒向西南突圍,霍特第4裝甲集團軍則從斯大林格勒以南的科捷爾尼科沃向東北進攻,夾擊葉廖緬科的斯大林格勒方麵軍,然後再旋轉過來攻擊圖瓦京的西南方麵軍的右翼。但希特勒表示決不從伏爾加河撤退,第6集團軍必須留在斯大林格勒,而曼施泰因必須殺開一條血路,打到斯大林格勒。
12月12日,曼施泰因元帥懷著沉重的心情,發起了代號為“冬季風暴”的反攻。德軍以霍特第4裝甲集團軍為先導,於12月16日突破了蘇軍第51集團軍在阿克賽河上的防線。至12月19日,霍特第4裝甲集團軍所屬的第57裝甲軍已突進到離南麵包圍圈30英裏以內的地方。此時,曼施泰因發現自己也有被數倍於己的蘇軍包圍的危險。於是,他決定不顧希特勒的將令,下令保盧斯立即向南突圍與第4裝甲集團軍會合。然而保盧斯在沒有接到希特勒的直接命令之前,沒有突圍的意圖,他以燃料不足為由拒絕了曼施泰因的命令,放棄了這最後一次機會。12月27日,霍特第4裝甲集團軍在蘇軍的強大攻擊下,終於退回了原來的陣地,曼施泰因的“冬季風暴”宣告失敗。
12月29日,保盧斯派第14軍軍長胡比中將飛出包圍圈去晉見希特勒,把第6集團軍的情況當麵向元首彙報。但希特勒還是命令第6集團軍死守斯大林格勒,直到明年春天為止。同日,由於蔡茨勒的一再要求,希特勒終於同意把A集團軍群從高加索撤出。
1943年1月初,天氣更為惡劣,溫度已降到零下45攝氏度。德第6集團軍的空運補給越來越少。它每日需700噸的補給量,而戈林實運到的,平均每天不到100噸,1月6日隻運來了45噸。德第6集團軍瀕於彈盡糧絕的境地。口糧的分配已減到了能夠維持生活的標準之下;炮兵的彈藥開始感到缺乏;醫藥品和燃料都已經用盡;數千人患上傷寒和痢疾,而凍傷的人就更多。
1月8日,蘇頓河方麵軍司令員羅科索夫斯基中將向德第6集團軍司令保盧斯上將發出最後通牒,敦促其投降。保盧斯電告希特勒,要求準予他相機行事,但希特勒駁回了他的請求。10日,羅科索夫斯基的頓河方麵軍向被圍的德第6集團軍發起了代號為“指環”的進攻。1月22日,蘇軍占領了古門拉克機場,第6集團軍的空運補給完全中斷了。保盧斯向希特勒報告說:“部隊已不能支持了,繼續抵抗已毫無意義,請準允我們投降。”他得到的答複是:“投降是不可能的,第6集團軍應在斯大林格勒盡到其英勇的責任,直到最後一人為止。”曼施泰因力勸希特勒批準第6集團軍殘部投降,他說:“是該結束這個英勇戰鬥的時候了,我的元首!我認為第6集團軍為了牽製俄軍已經盡了最後的努力,繼續抵抗已經沒有意義了。”而希特勒向曼施泰因解釋說,不允許投降,“一來即使包圍圈中的德軍分成幾個較小的單位,也還可以抵抗相當長的時間;二來,俄國人根本不會遵守對第6集團軍投降後所許下的諾言。”
1月30日,希特勒授予保盧斯元帥節杖,以鼓勵其繼續抵抗下去。他對約德爾說:“在德國曆史上,還從來沒有元帥被生俘的。”
1月31日,保盧斯向總部發出最後一份電報:“第6集團軍忠於自己的誓言並認識到自己所負的極為重大的使命,為了元首和祖國,已堅守自己的崗位,打到最後一兵一卒,一槍一彈。”同日,蘇軍第*集團軍的第38摩步旅打到了保盧斯的司令部,第6集團軍司令部發報員自己決定發出了最後一封電報:“俄國人已經到了我們地下室的門口,我們正在搗毀器材。”最後用國際電碼寫上“CL”,表示“本台停止發報”。
蘇軍在地下室外叫第6集團軍司令部人員投降,第6集團軍參謀長施密特將軍接受了要求。施密特問保盧斯:“請問陸軍元帥,還有什麼話要說嗎?”保盧斯無話可說,隻好投降。2月1日,在斯大林格勒城北的第11軍殘部也投降了。至此,斯大林格勒會戰結束。德第6集團軍司令保盧斯元帥,步兵第4軍軍長普費費爾中將、第51軍軍長庫爾茨巴赫中將、第295師師長科爾費斯少將等23位將官,2000名校級以下軍官和9萬名士兵被俘,約14萬人死亡,隻有3萬餘傷患者事先陸續空運撤出。而被俘的9萬多人也大部分死於蘇軍戰俘營,能活到戰後的,不過幾千人而已。
斯大林格勒會戰後,德軍完全喪失了蘇德戰場的戰略主動權,正如德國陸軍總參謀長蔡茨勒將軍所說的:“我們在斯大林格勒損失25萬官兵,那就等於打斷了我們在整個東線的脊梁骨。”