苏军最高统帅部命令戈沃罗夫将军的列宁格勒方面军和梅列茨科夫将军的沃尔霍夫方面军从1944年1月14日起在诺夫哥罗德―卢加地区展开联合行动。在地面进攻开始前,苏军重型轰炸机首先对位于别扎波特尼的德军炮兵阵地进行了一整夜的空袭。次日上午9时35分,苏军开始使用火炮猛烈攻击德军阵地。炮击整整持续了1小时零5分钟,数以千计的炮弹排山倒海般地飞往德军阵地。轰炸刚一结束,第2突击集团军立即向前突进,以5英里的进攻正面向前推进了3000码,有的部队还突进到德军第2防线。
虽然第一天的进攻非常顺利,但后来由于苏军第42集团军的进攻区域先后遭遇雾雪天气,进攻一度受阻。虽然第42集团军取得了一定的进展,但是速度很慢。戈沃罗夫派出他的参谋长前往前线,调查进度缓慢的原因。通过实地调查,参谋长发现步兵在前进中根本得不到火炮和坦克的支援。造成这种局面的一个主要原因是,坦克陷进了厚厚的积雪中,前进非常困难。尽管如此,苏军的前进并没有因此而停止。到了1月19日,第2突击集团军和第42集团军在罗普莎附近顺利会合。在两军会合的途中,苏军攻占了德军用来炮击列宁格勒的重炮阵地,缴获了100多门重型火炮。
1月20―21日,德军几乎完好无损地撤出了姆加地区,这让戈沃罗夫大为光火。但是,形势非常明显,他们对列宁格勒构成威胁的时间已经不会很长。1月20日,苏军实现了突破,开始转入反攻阶段,猛烈追击撤退中的德军。但是,和姆加地区一样,苏军的反攻速度太慢,主要原因是编队指挥官的战术指挥效率太低下。由于在整个战争期间,这些高级指挥官大部分的时间都被困在列宁格勒,不像其他战区的指挥官那样,经历了一个学习的过程。因此,在列宁格勒战役中,苏军一个最明显的倾向是全程使用步兵部队,装甲和炮兵部队坐了“冷板凳”,根本没有任务可以执行。到了1月23日,戈沃罗夫再也无法忍受这种错误的战术,决定起用炮兵和装甲力量。他命令各兵种指挥官联合作战,最大限度地发挥手中重型武器的作用。
但是,由于这些命令来得太晚,德军得以成功逃脱。1月26日,苏军全部清除了莫斯科―列宁格勒铁路线周围的德军,重新控制了这条铁路。德军对于列宁格勒的围困最终被打破了。尽管一座又一座的城镇相继落入苏军之手,但德军仍然一边继续战斗,一边有序地撤退。苏军追击速度过于缓慢,最终使得德军再次避免了全军覆没的命运。尽管这让苏军非常失望,但他们毕竟实现了自己的目标。到了1月30日,在苏军的进攻下,德军向后撤退了50英里~60英里。到了2月份,战斗仍在进行,但是弹药的短缺使得苏军的进攻遇到了前所未有的困难。苏军尽管在1月底就赢得了这场战役,但是直到8月份才将列宁格勒地区的德军全部清除出去。苏军实现了解放列宁格勒的主要目标,同时清除了列宁格勒和加里宁周边绝大部分地区的德军。曾经在苏联国土上所向披靡的德国北方集团军群遭到极大削弱,许多作战编队遭受了致命打击。
接下来,苏军的主要任务就是将芬兰部队从1941年侵占的苏联国土上驱逐出去。这时,芬兰政府已经清醒过来,意识到德军北方集团军群的失败将使自己的处境越来越困难,于是开始考虑通过外交途径与苏联方面进行斡旋。1944年2月,随着列宁格勒战役临近尾声,苏军解散了梅列茨科夫将军指挥的沃尔霍夫方面军,任命他为加里宁方面军司令。6月10日,梅列茨科夫指挥部队向斯维里-彼得罗扎沃茨克发起了进攻。与此同时,列宁格勒方面军也开始进攻维堡附近的卡累利阿地峡。战斗一直持续到8月9日,芬兰部队被赶回到1939年的芬苏边界线。芬兰政府看到大势已去,急忙求和,于9月4日与苏联签订了停战协议。
“巴格拉季昂”行动
在1944年的春季攻势即将结束前,苏联最高统帅部就已经开始考虑下一阶段的进攻计划。为了确定进攻目标,统帅部的成员们对于各种目标进行了广泛分析。他们曾经考虑进攻巴尔干半岛,但考虑到不利的地形条件可能使补给线拉得太长,于是很快否决了这个计划。随后,他们又对其他选择进行了讨论,最终一致认为,最好的进攻是针对白俄罗斯境内的德军中央集团军群,首先夺回明斯克。这次行动以俄国19世纪著名的军事统帅巴格拉季昂的名字命名。按照计划,苏军首先包围驻守在明斯克―维捷布斯克―罗加乔夫三角地带的德军,将他们彻底歼灭。