金兵首先發動了鎖城法,把城中的水道糧道全部截斷。使用五十餘部炮車(投石機),以斗大的炮石射擊城中的防禦主體敵樓。
敵樓一般採用磚木結構,一旦被炮石擊中就會崩塌一塊。宋兵爲了保護敵樓就用城中居民的棉被和裝滿糟糠的麻袋一層層地鋪到敵樓上減緩炮石的衝擊力。
太原城外有很深的壕溝,用來防止步兵對城牆的直接衝擊,金兵用一種新型武器洞車對壕溝進行破壞。洞車中間是空的,可以裝上木料,一車一車地推到壕溝前,把壕溝填平。而宋軍就在城中挖了地道通往城外壕溝,等金兵填滿了木料就放火焚燬。
金兵又使用了一種大型攻城器械鵝車,這在當時這是一種攻守兼備的先進裝備,兩側有木輪可以在裡面推動,上面貫有鐵皮,裡面可以容納五十名士兵。鵝車直抵城下,裡面的金兵用鐵鍬鑿挖城牆。
宋軍就用粗繩從城上鉤拉,使鵝車失去重心倒下,後來繩子不夠,就乾脆把城內的青石臺階的巨型條石拆下,從城上將千斤巨石砸下破壞鵝車。
在最危險的時刻,城中連一粒糧食一滴水也沒有了,弓箭礌石全部消耗殆盡,城牆被挖得千瘡百孔,城內百姓易子而食。爲什麼要易子而食?只因實在沒東西可吃,不吃自家的小孩,那小孩也會餓死,但骨肉血脈如何忍心相食?只好與別的人家交換孩子來吃。守軍則先殺戰馬,最後不得不煮皮甲充飢。
攻方百計進攻,守方就應對而用百計防禦,雙方死傷不計其數,城上城下都堆滿了屍體。
這一場惡戰,持續了足足半年,大宋外圍的援軍越來越多,眼見金兵大勢已去軍心惶亂。這時大宋朝廷竟然放棄了勝機,主動議和,寫降書納順表,並向大金獻出了和宋軍屍體一樣多的金銀。
金兵此時補給已斷,久戰不下,自然對宋朝的舉動喜出望外,暫時退兵,整頓軍備,準備第二次南侵。