然而,德国第六集团军在战役初期就取得令人满意的战果使希特勒再次改变了计划。他认为攻占斯大林格勒无须那么多兵力,遂于17日命令第四装甲集团军从斯大林格勒方向南下,转隶A集团军群,以支援克莱斯特的第一装甲集团军强渡顿河下游。这样,斯大林格勒方向的进攻部队就只剩下了保卢斯的第六集团军,而第六集团军却又有赖于第四装甲集团军的合作。由于当地公路狭窄并且数量不多,导致了德军第四装甲军团军与第六集团军陷入了交通阻塞。两个军团为了疏导路面数以千计的车辆,不得不陷入停滞。这次迟延造成了很大的损失,使进攻至少推迟了一个星期,未能一举突入斯大林格勒。于是,丧失了作战时机的保卢斯的第六集团军继续向斯大林格勒前进。即便如此,该集团军仍不能小看,它辖有6个军,其中两个装甲军,计14个师约27万人,近500辆坦克,3000门火炮和迫击炮,还有第四航空队的1
200架作战飞机进行支援。
苏军最高统帅部开始逐渐明确德军的意图,决心在斯大林格勒组织坚守。为此,苏军于7月12日在西南方面军原有基础上组建了由铁木辛哥元帅为司令员的斯大林格勒方面军,担负斯大林格勒方向的防御任务。其编成内有从苏军战略预备队调来的第六十二、第六十三、第六十四集团军和原西南方面军的第二十一、第二十八、第三十八、第五十七集团军残部,第十三、第二十二、第二十三坦克军,以及空军第八集团军、海军伏尔加河区舰队。斯大林格勒方面军实际的力量计12个师,约16万人、2200门火炮和迫击炮、近400辆坦克、飞机454架。
1942年7月17日,苏德双方在斯大林格勒接近地展开了激烈的交战,会战正式开始。德军第六集团军在保卢斯上将的指挥下,以第八步兵军和第十四装甲军为北突击集团,以第五十一步兵军和第二十四装甲军为南突击集团,突击苏军第六十二集团军防御,实施包围,向卡拉奇方向展开进攻。
同时,德军以部分兵力向苏军第六十四集团军发起佯攻,以吸引苏军的注意力。7月23日,德军突破苏军第六十二集团军右翼防线,合围了该集团军的两个师,开进至斯大林格勒西面的顿河河岸。7月25日,德军对苏军第六十四集团军的右翼阵地发起攻击,企图在卡拉奇附近强渡顿河。次日,苏军第六十四集团军被迫退过顿河。斯大林再也按捺不住对年迈的铁木辛哥元帅的失望,撤消了他斯大林格勒方面军司令员的职务,由第六十四集团军司令戈尔多夫中将接任,并派总参谋长华西列夫斯基上将作为最高统帅部代表前往斯大林格勒协助指挥战事。
斯大林还决定将预备队的坦克第一和第四集团军火速调往斯大林格勒地域,又从远东调来10个师加强斯大林格勒的防御。随后,为了增强斯大林格勒守军的斗志,斯大林于7月28日发布了第二二七号命令,凡是不服从命令而离开战斗岗位或者撤退的军人都将被枪毙,并严厉要求苏军部队“绝对不许后退一步!”7月25日、27日,苏军以刚开来的坦克第一和第四集团军进行反攻。德军第六集团军由于缺少装甲兵力的支援,被迫转入防御态势。
7月30日,希特勒又作了一个影响德军命运的决定。他宣布:“因为高加索的命运将要在斯大林格勒决定,所以由于这个会战的重要性,遂有从A集团军群抽调兵力以增强B集团军群之必要。”于是,霍特的第四装甲集团军又归还给B集团军群,并于8月1日奉命沿科捷利尼科沃——斯大林格勒铁路向东北方向进击,当天迅速突破了苏军第五十一集团军的防线,占领了蒙特纳亚。8月3日,霍特攻占了科捷利尼科沃,接着又于5日突破了苏军第六十四集团军的防御,前进到阿勃加涅罗沃地域,但之后遭到了苏军越来越顽强的抵抗和反击,霍特只好放弃了独立攻占斯大林格勒的想法,于8月9日转入守势。
8月5日,苏军最高统帅部决定将斯大林格勒方面军改组为东南、斯大林格勒两个方面军,由华西列夫斯基上将统一指挥。东南方面军由叶廖缅科上将指挥,编成内有第六十四、第五十七、第五十一集团军,以及坦克第一集团军、坦克第十三集团军和空军第八集团军。斯大林格勒方面军仍由戈尔多夫中将指挥,编成内有第二十一、第六十二、第六十三集团军,以及坦克第四集团军、坦克第二十八军和空军第十六集团军。
8月19日,保卢斯和霍特重新发起了进攻。保卢斯的第六集团军从斯大林格勒西北面向东南攻击,22日突破苏军第六十二集团军的防线,强渡顿河,占领了卡拉奇,23日德军第十四装甲集团军推进到斯大林格勒北郊,开进到伏尔加河,将苏军第六十二集团军与斯大林格勒方面军的主力分割开来。霍特的第四装甲集团军从南面向北进攻,突破了苏军第六十四集团军的防御。9月2日,保卢斯的第六集团军右翼与霍特的第四装甲集团军左翼取得了联系。与此同时,德军第四航空队出动飞机几百架,入夜又出动2000架次飞机对斯大林格勒进行狂轰滥炸。
鉴于斯大林格勒异常严峻的形势,斯大林决定任命朱可夫为最高副统帅,赶到斯大林格勒前线坐镇指挥,并决定立即调拨第二十四、第六十六集团军和近卫第一集团军开赴斯大林格勒。8月29日,朱可夫飞到斯大林格勒,立即着手组织第二十四、第六十六集团军和近卫第一集团军的反击行动。9月5日拂晓,朱可夫将三个新锐集团军投入反击。激烈的战斗持续到傍晚,苏军近卫第一集团军才前进了2—4千米,而第二十四集团军几乎仍停留在原阵地。当晚,斯大林以强硬的口气命令朱可夫:“继续冲击,你们的主要任务是把尽可能多的敌人调开斯大林格勒。”9月6日,苏军再次发起冲击,但是,这次冲击又一次被德军击退了。
9月13日,德军开始攻城。保卢斯的第六集团军担当主力,从城北实施猛烈突击。霍特的第四装甲集团军则从城南推进,策应保卢斯在城北的主攻。苏军崔可夫中将指挥的第六十二集团军和舒米洛夫少将指挥的第六十四集团军接受了保卫斯大林格勒市区的任务。14日,德军从城北突入市区,与苏军第六十二集团军展开了激烈的巷战,双方逐街逐楼逐屋反复争夺。斯大林格勒变成了一片瓦砾场,城中80%的居民区被摧毁。在满是瓦砾和废墟的城中,苏军第六十二集团军顽强抵抗,在城中的每条街道、每座楼房、每家工厂内都发生了激烈的枪战。攻入城中的德军死伤人数不断增加。尽管德军对伏尔加河东岸进行频繁轰炸,但是苏军还是从那里得到了不断的补给和支持。刚刚赶赴城中的苏军战士的平均存活时间不超过24个小时。
德军的主要战术是各兵种联合作战,非常重视步兵、工程部队、炮兵和空军的地面轰炸的协作。为了对抗这种战术,苏军指挥官采取了贴身紧逼的策略,尽量将己方的前线与德军贴近。这样导致了德军的炮兵部队无法发挥远程攻击的优势。
9月15日,德军对马马耶夫高地实施重点突击。该高地是斯大林格勒城中的制高点,从这里可以俯瞰和控制全城,崔可夫中将的第六十二集团军司令部即设在这里。经过一天最为残酷的战斗,德军占领了马马耶夫高地,但在16日,苏军近卫第十三师渡过伏尔加河进入斯大林格勒,突然向德军发起反攻,又夺回了该高地。9月25日,德军占领了市中心,27日冲进了北部工厂区,并重新占领了马马耶夫高地,但该高地在29日又被苏军夺回。以后的战斗更加激烈,两方军队不断地交替占领这片高地。苏军在一次反攻中,竟然在一天之内牺牲了1万名士兵。
在一个大粮食仓库里,两军的士兵非常接近,甚至能够听到对方的呼吸声,经过数个星期的苦战,德军不得不从这个仓库撤走。在城中的另一个部分,由扬科夫?巴甫洛夫指挥的一个小分队(共计6人)占据了城中心的一座公寓楼,并顽强地进行抵抗。
士兵们在大楼附近埋设了大量地雷,并在窗口安设了机枪,还将地下室的隔墙打通以便通信。这座顽强的堡垒后来被苏联人骄傲地称为“巴甫洛夫大楼”(最后仅剩的一堵墙还留到现在,上面雕刻着士兵抵抗的画面,右上角刻着数字58以表明他们6人坚守了58天)。
由于德军无法看到战斗结束的迹象,便开始调遣包括600毫米迫击炮等重装甲部队开入城内。在伏尔加河东岸的苏军火炮部队将德军置于其炮火笼罩之下,城中的苏军防御部队仍然利用废墟进行战斗。由于城内布满了高达数米的瓦砾堆和废弃建筑,德军的坦克部队毫无用武之地,而且即使坦克能够前进,也会遭遇到在楼顶的苏军反坦克武器的袭击。此外,苏军的狙击手非常成功地利用废墟作为掩体,给德军造成了极大伤亡。
9月28日,苏军最高统帅部决定将斯大林格勒方面军改称顿河方面军,司令员为罗科索夫斯基中将;东南方面军改称斯大林格勒方面军,司令员为叶廖缅科上将;近卫第一集团军扩建为西南方面军,司令员为图瓦京中将。最高副统帅朱可夫大将和总参谋长华西列夫斯基上将奉命秘密拟制反攻计划。
经过三个月血腥的战斗,至11月初,德军终于缓慢地推进到了伏尔加河岸,并且占领了整座城市的80%的地区,将留守的苏联军队分割成两个狭长的口袋状,德军始终未能完全占领斯大林格勒。此外,伏尔加河开始结冰,导致苏军不能再通过船运送补给品给城中守军。尽管如此,马马耶夫高地附近的战斗和北部城区的工厂地带的战斗依然非常激烈。其中,红色十月工厂、
拖拉机厂和街垒工厂的战斗为全世界所知晓。