金兵首先发动了锁城法,把城中的水道粮道全部截断。使用五十余部炮车(投石机),以斗大的炮石射击城中的防御主体敌楼。
敌楼一般采用砖木结构,一旦被炮石击中就会崩塌一块。宋兵为了保护敌楼就用城中居民的棉被和装满糟糠的麻袋一层层地铺到敌楼上减缓炮石的冲击力。
太原城外有很深的壕沟,用来防止步兵对城墙的直接冲击,金兵用一种新型武器洞车对壕沟进行破坏。洞车中间是空的,可以装上木料,一车一车地推到壕沟前,把壕沟填平。而宋军就在城中挖了地道通往城外壕沟,等金兵填满了木料就放火焚毁。
金兵又使用了一种大型攻城器械鹅车,这在当时这是一种攻守兼备的先进装备,两侧有木轮可以在里面推动,上面贯有铁皮,里面可以容纳五十名士兵。鹅车直抵城下,里面的金兵用铁锹凿挖城墙。
宋军就用粗绳从城上钩拉,使鹅车失去重心倒下,后来绳子不够,就干脆把城内的青石台阶的巨型条石拆下,从城上将千斤巨石砸下破坏鹅车。
在最危险的时刻,城中连一粒粮食一滴水也没有了,弓箭礌石全部消耗殆尽,城墙被挖得千疮百孔,城内百姓易子而食。为什么要易子而食?只因实在没东西可吃,不吃自家的小孩,那小孩也会饿死,但骨肉血脉如何忍心相食?只好与别的人家交换孩子来吃。守军则先杀战马,最后不得不煮皮甲充饥。
攻方百计进攻,守方就应对而用百计防御,双方死伤不计其数,城上城下都堆满了尸体。
这一场恶战,持续了足足半年,大宋外围的援军越来越多,眼见金兵大势已去军心惶乱。这时大宋朝廷竟然放弃了胜机,主动议和,写降书纳顺表,并向大金献出了和宋军尸体一样多的金银。
金兵此时补给已断,久战不下,自然对宋朝的举动喜出望外,暂时退兵,整顿军备,准备第二次南侵。