邊境的前哨部隊,李靖命蘇定方率領騎兵迅速出擊,騎兵們如疾風般衝向敵軍,馬蹄揚起的塵土遮天蔽日。高麗的前哨部隊在大唐騎兵的突然攻擊下,陣腳大亂,很快被擊潰。
隨後,大軍繼續前進,來到了安市城郊外。李靖親自勘察地形,發現安市城周圍地勢較為平坦,但城池堅固,易守難攻。他決定先圍城,切斷安市城與外界的聯絡,再尋找破城之策。於是,七萬步兵迅速展開,將安市城團團圍住,工兵則在後方建造攻城器械。
在圍城期間,大唐軍隊與高麗軍隊多次發生小規模衝突。蘇定方的騎兵時常在城外巡邏,防止高麗援軍的到來,並趁機襲擊出城騷擾的高麗小股部隊。張士貴的步兵則堅守營地,嚴陣以待。
隨著攻城器械的建造完成,李靖下令攻城。投石車將巨大的石塊拋向安市城的城牆,砸出一個個缺口。攻城塔緩緩靠近城牆,步兵們沿著攻城塔衝向城牆。然而,高麗軍隊頑強抵抗,他們用弓箭、石塊等武器還擊,城下的大唐士兵傷亡慘重。
在戰爭陷入僵局之時,情報人員傳來訊息,有一支高麗援軍正從平壤趕來,人數約五萬。李靖當機立斷,留下一部分兵力繼續圍城,自己率領主力部隊前去迎戰援軍。在離安市城數十裡的山地中,雙方遭遇。此地地形複雜,山間小路崎嶇難行。
李靖命蘇定方率領騎兵從小路迂迴包抄高麗援軍的後路,自己則率步兵在正麵列陣迎敵。高麗援軍在淵蓋蘇文的指揮下,企圖憑藉山地地形與大唐軍隊決戰。他們的步兵在山坡上組成密集方陣,騎兵在兩翼伺機而動。
戰鬥打響後,大唐弓兵率先發難,箭矢如雨點般射向高麗軍隊。高麗軍隊則用盾牌抵擋,然後步兵開始緩緩下山進攻。大唐步兵則穩住陣腳,等待敵軍靠近。當高麗步兵進入攻擊範圍後,大唐步兵呐喊著衝向敵軍,雙方展開激烈的白刃戰。此時,蘇定方的騎兵從後路殺出,高麗軍隊頓時陷入混亂。
經過一場苦戰,大唐軍隊成功擊敗了高麗援軍,斬首兩萬餘級,俘虜一萬餘人。此役大