1941年9月30日和10月2日,德军中央集团军群先后发起布良斯克和维亚济马战役,莫斯科会战从此开始。这次会战按苏军的行动性质分为防御、反攻和总攻3个阶段。1941年9月30日至12月5日为苏军防御阶段,12月5日至1942年1月7日为苏军反攻阶段,1942年1月8日至4月20日为苏军总攻阶段。
战斗的一开始便是异常激烈残酷。在希特勒看来,他已经是胜券在握了,于10月7日命令中央集团军群总司令费·冯·博克元帅不准接受莫斯科投降,妄图把这个他恨之入骨的城市从地图上抹掉,而苏军利用筑好的多重纵深层次的防御体系,顽强地阻击敌人。
德军的进攻多次令莫斯科陷入了危急状态。但位于一线作战的德军指挥官们意识到,德军的进攻能力很快就要耗尽,因此,请求“撤退到一条较短的容易防守的战线,预先为驻扎、补给、防御做好充分准备,以便时机一到,就能在很短的时间里将其占领”。然而,德国陆军总司令部和希特勒都不同意冯·博克等人的意见。希特勒对撤退不予考虑,只是在冯·博克再三请求下,同意当代价高昂的攻势无望取胜时中止进攻。
为缓解莫斯科西北的紧张局势,苏军最高统帅部大本营将突击第1集团军和第20集团军调归西方面军右翼,第16、第30集团军也得到加强,在红波利亚纳、克留科沃地域实施了反突击。到12月初,阻住了德军的进攻。在纳罗福明斯克方向,12月3日,德第4集团军遭到苏第5、第33集团军的反突击,被迫退至库宾卡以北、戈利齐诺和纳罗福明斯克以南阵地。12月5日,冯·博克命令第3、第4装甲集团军群与苏军脱离接触,并于随后几天撤到伊斯特拉至克林以东的防线,德军从西北和北面突入莫斯科的企图被粉碎。
在图拉方向,12月5日,苏军第50集团军协同第49集团军左翼各兵团在科斯特罗沃、列维亚基诺地域实施反突击,恢复了图拉与莫斯科的联系。德军第2装甲集团军被迫向南退却,撤到顿河上游、夏特河、乌巴一线。德军对莫斯科的最后一次进攻彻底失败。至此,莫斯科会战苏军防御阶段结束。
1941年12月5日至6日,苏军在加里宁、克林·索尔涅奇戈尔斯克、图拉和叶列茨等方向发动了具有历史意义的大反攻。至1942年1月初,苏军在西部战略方向的反攻全部结束。苏军解放1.1万多人的居民地,消除了图拉被合围的危险。进攻的苏军前出到勒热夫、拉马河、鲁扎河、博罗夫斯克、莫萨利斯克、别廖夫、韦尔霍维耶一线。德军38个师遭重创,进攻莫斯科的突击集团被击溃。德军后退100~250公里,从南北两面突击莫斯科的企图被彻底粉碎了。