攻城作战是古代常见的作战样式之一。城邑一般均为一国或一地的政治、经济、军事中心,势所必争。但在冷兵器时代,由于攻城技术相对落后,高城深池难以强力攻取。因此,在攻城时,必须将强攻与智取有机结合起来,在围城的同时,断敌粮道,歼敌援兵,才能达到攻克敌人城池的目的。宋灭北汉就是运用这一战法取得胜利的。
宋在完成南方的统一后,开始集中力量准备消灭北汉。北汉依恃辽的支持,经常南下骚扰宋境,双方冲突始终未断,早在宋太祖时,对北汉曾发动过三次进攻。第一次是开宝元年(968 年)八月,乘北汉统治集团内部斗争激烈之际,宋军进攻北汉,直逼太原城下,后由于辽派兵南下救援北汉,宋军撤退。第二次是在开宝二年二月,来太祖亲良率兵进攻北汉,围困太原长达四个月,由于汉军顽强坚守,辽兵再次增援,宋军撤围退兵。第三次是在开宝九年八月,兵分五路进攻北汉,在太原城下大败汉军。但由于宋太祖突然去世,宋军撤退。
宋太宗鉴于以往进攻北汉失利的教训,决定攻城阻援,以优势兵力强攻太原,并以有力部队从东北两面阻击辽援军。其具体部署是:以潘美率军进攻太原,命郭进率部阻击辽军,宋太宗亲率一部兵力牵制幽州的辽军大规模西援或南下。太平兴国四年(979 年)二月十五日,宋太宗自东京出发。三月中旬,郭进率军进至石岭关。北汉统治者向辽求援,辽派南院宰相耶律沙、
冀王耶律塔尔率兵先行,以南院大王耶律斜珍、枢密副使穆济率军继后,由东面增援;又派将领韩侼、耶律善布率兵从北面增援北汉。三月十六日,耶律沙率兵至白马岭(今山西盂县东北),与郭进阻援部队遭遇,两军隔大涧对峙。辽军渡涧进攻宋军,郭进乘其半渡,率骑兵奋击,耶律塔尔战死,辽军大败。辽北路援军由大同南下,途中听说东路败退,自动撤走。四月中旬,宋军数十万之众包围了北汉都城太原。四月二十六日,宋太宗亲临太原城下,四面巡视督战。北汉主刘继元在困守孤城、外无援兵、内部厌战的情况下,于五月初五日出降,北汉灭亡。