第一次伯力之战后,忽必烈砍了一众败将的头,又重新派了一名达鲁花赤来,并给了他征调方圆一千里士兵的权利。只不过鲜卑利亚这个苦寒之地并非蒙军的战略方向,各个生女真部族也是人相稀少,故经过半年时间的准备,新来的达鲁花赤也只拼凑出了四千人军队,其中蒙古骑兵一千五百人,各部族仆从军二千人,赎罪军五百人。所谓赎罪军,乃是忽必烈的开平政权流放在此的罪犯组成的军队,主要是追随阿里不哥的蒙古贵族,此外还有触犯了蒙古法律的契丹人、金人、汉人、色目人、高丽人。至于粮草辎重的运输,则由五千生女真壮丁负责。为了防止他们逃跑,蒙古人将他们的妻儿老小都关了起来。
蒙古人吸取上一次失败的教训,将进攻时间选在了隆冬时节。虽然气温天寒地冻,但对于长年生活在苦寒高原蒙古人来说,并不是太大的问题。对生女真人来说,在冰天雪地活动本就是他们最基本的技能。为了对付严寒,达鲁花赤还征调了大量的兽皮,不仅将手下的士兵裹得严严实实,还派发给了随行的生女真民夫。当蒙古军队到达伯力堡时,近万人被冻伤的不过几十人,实在是奇迹。话说能将战争准备工作做得如此周密,既表明蒙古人对此战的重视,也体现新来的达鲁花赤绝非等闲之辈。
北方公司当然知道蒙军惨败之后,必然不会善罢甘休,故在第一次伯力之战后继续加固堡垒。主要是拓宽堡垒前的壕沟,加高木栅栏,在堡垒前形成了三层壕沟和三层栅栏。这些壕沟宽四米高三米,为了防止冬季结冰,这些壕沟并没有灌水,而是在底部埋设了密密麻麻的尖木桩。这些尖桩虽然结构简单,杀伤力却不小,刚建好时便有野猪慌不择路掉入其中,身体被刺穿几个大窟窿。木栅栏由腰部粗细的整根圆木构成,埋深一米有余,露出地面的部分高达三米。栅栏顶部也被削尖,为了防止腐烂还用火烧燎过圆木表面。
在蒙军到来之前,伯力守军又烧了开水浇在堡垒墙上,让墙体变成了滑溜溜的冰面,根本无法攀爬,木栅栏也是如法炮制。此时围绕堡垒的江面已经封冻,冰层厚度甚至达到一米以上。守军又紧急组织人,用锤砸用火烧用火药炸,在靠近堡垒的江面砸出不少冰窟窿,制造了数十个吞人的陷阱,还顺便捕捞了大量的鲜鱼。那些冰窟窿虽然很快又重新封冻起来,但冰层已是十分脆弱,根本承受不住人马的踩踏。一场飞雪之后,整个大地又变得银装素裹,冰面上也变得了一片整洁,殊不知却暗藏着杀机。
蒙军的试探性进攻便中了计。打头阵的是赎罪军的士兵,他们滑着雪撬在光亮的冰面前进,既快速又丝滑,眼看就要接近堡垒,却不料接而连三掉入冰窟窿。后方的蒙军士兵眼见如此,有的急急上前救援,试图将同伴拖出冰窟窿,更多的则是转身便逃,因为堡墙上的大炮开火了。重炮轰击之下,弹着点的冰面虽然没有被击破,却也出现了大量裂缝,并拉扯着附近的冰层喀喀作响。冰面碎裂的声音比火炮巨响更让蒙军士兵胆寒,炮弹击中自己的概率很低,即便击中也很会当即死去,一了百了。而冰面一旦破碎解体,在这隆冬时节落入水中,很快便会被冻死。即便能被救起大概率也会冻坏四肢,在这恶劣生存环境之中,失去了手脚便意味着凄惨生活的开始,最终下场便是冻饿而死。