戰役經過
安祿山遣兵攻陷潼關後,正圍困史思明於博陵(今河北定州)的李光弼部,撤圍西入井陘(今河北獲鹿西南),還太原。史思明再度攻占常山(今河北正定),奪回河北全境。二載正月,史思明自博陵、蔡希德自上黨(今山西長治)、高秀岩自大同(今山西朔州東北馬邑)、牛廷玠自范陽(今北京城西南)率兵共10萬,會攻太原,企圖奪取河東,進而長驅直取朔方、河西、隴右等地。
當時,李光弼所部精兵都已調往朔方,太原所剩只有河北兵5000人,加上團練(地方武裝)之眾,也不滿萬人。面對叛軍的強大攻勢,諸將都惶懼不安,主張修城自固,李光弼認為,太原城方圓40里,叛軍將至而動工修城,是未見敵而先使自己陷於困境。他率領軍民在城外挖掘壕溝,並做了幾十萬個土磚坯。等到史思明的大軍攻打太原時,他命令將士用土坯修築營壘,哪裡被損,就用土坯補上。史思明派人去山東取攻城器械,以蕃兵3000人護送,途中被李光弼遣兵攔擊,將其全殲。
史思明圍攻太原月余不下,便選精銳士卒為游兵,讓他們進攻城南,再轉攻城西,自己則率兵攻城北,而後轉攻城東,試圖尋找唐軍防守漏洞。然而李光弼治軍嚴整,警戒巡邏無絲毫懈怠,使史思明無懈可擊。李光弼又派人挖掘地道,通至城外,叛軍在城外叫罵挑戰,常冷不防被唐軍拖入地道,拉至城上斬首,嚇得叛軍膽顫心驚,走路時都低頭看地。叛軍用雲梯和築土山攻城,唐軍便在城下先挖好地道,使其靠近城牆便塌陷。李光弼為阻止叛軍強行攻城,還在城上安裝大炮 (拋石器),發射巨石,一發可擊斃叛軍20餘人,史軍士卒死於飛石之下者甚眾,被迫後退,但圍困愈加嚴密。李光弼為打破叛軍圍困,以詐降手段,與叛軍約期出城投降,暗地派人挖掘地道直至叛軍軍營之下,先以撐木支頂。到約定之日,李光弼派部將率數千人出城偽降。叛軍不知有詐,正在調動出營時,突然營中地陷,死千餘人,頓時一片慌亂。唐軍乘機擂鼓吶喊,猛烈衝擊,殲滅叛軍萬餘人。
正當太原之戰緊張進行時,安祿山被其子安慶緒所殺。安慶緒奪取帝位後,命史思明回守范陽,留蔡希德等繼續圍困太原。
結果
二月,李光弼率軍出擊,大破蔡希德軍,殲其7萬餘人,繳獲大量軍資器械,蔡希德率殘兵倉惶逃走,太原之圍遂解。