选择守城的一方一般都是因为实力弱于敌人,若双方实力相当,一般都会出城决战,因为被困城中,虽然有城墙的防护,但对士兵的士气和信心具有极大的考验。张辽的成名战威震逍遥津,也是以数千兵马,防守号称十万大军的孙权。哪怕兵力相差悬殊,张辽还是带兵出去打一波,以提升己方士气,因为当时曹操正率主力大军在汉中,根本无法回援。
守城是因为打不过而不得不守,但光死守的话也坚持不了多长时间,除非知道援兵马上就到,否则一定会找机会出城反击一下,来提升士气。诸葛亮打陈仓,郝昭坚守不出,是因为他知道张郃就在救援的路上,他等得起。
曹仁打算守陈仓,但也不是纯死守,因为陈仓城小,容不下十万大军,曹仁在城内留了三万士兵,其余士兵在渭水边扎营,打算依河凭城阻击楚军。
楚军虽然也有三十万大军,但也不可能乌泱泱的全都涌出来,一方面是这一片无法展开那么多军队,来的再多也只能在后面看热闹;另一方面就是要护住自己的粮道。
在张武看来,陈仓之战只不过是关中大决战的序曲,真正的战场应该在长安。
公元218年春,魏楚双方大战于陈仓,魏军坚守岸边,楚军数次渡河皆被击退。楚王张武亲临前线,下令于岸边搭建投石车,向对岸发射火油弹、毒烟弹,随后张武发动了“呼风唤雨”技能。
趁魏军阵营出现混乱之机, 楚军大将魏延率武卫营乘船强行渡河, 破开魏军阵势, 在河对岸抢占了一片登陆地,后续楚军陆续过河,魏军退守陈仓。
曹仁和司马懿都不愧是善于防守的统帅, 楚军即使有火油弹和毒烟弹等武器助攻,但在魏军的顽强防守下, 迟迟不能打下陈仓。楚军也试着要挖地道至陈仓城下埋下火药, 但挖了好几条地道都无法成功, 这一片地底下全都是坚硬的大石头。