行至新城,龐同善為高句麗軍襲擊。薛仁貴得知後,率軍及時趕到,擊斬敵首數百級,解救了龐同善。龐同善、高品進至金山,又被高句麗軍襲擊,薛仁貴聞訊後,率軍將高句麗軍截為兩段奮擊,斬首5000餘級,並乘勝攻占高句麗南蘇、木底、蒼岩三城,與泉男生相會。
唐高宗聞之戰報,特下詔慰勉薛仁貴。接著,薛仁貴又率軍進攻高句麗重鎮扶餘城。這時,部將都以兵少,勸他不要輕進。
薛仁貴說:“兵在善用而不在多,於是率軍出征。”
在扶餘城戰役中,薛仁貴身先士卒,共殺敵萬餘人,攻拔扶餘城,一時聲威大震。扶餘川40餘城,也紛紛望風降附。
這時,唐朝政府又派李績為大總管進攻高句麗。薛仁貴也沿海繼進,與李績合兵於平壤城。最後,高句麗降伏。
攻降高句麗以後,唐高宗命薛仁貴與劉仁軌率兵2萬人留守平壤,並且授薛仁貴為右威衛大將軍,封平陽郡公,兼安東都護。薛仁貴受命以後,便移治平壤新城。
薛仁貴在任安東都護期間,撫愛孤幼,存養老人,懲治盜賊,擢拔賢良,褒揚節義之士,高句麗士民安居樂業。
就在薛仁貴治理平壤新城期間,吐蕃漸趨強盛,擊滅了慕容鮮卑建立的吐穀渾,又侵略唐西域地區。為此,唐高宗調任薛仁貴為邏婆道行軍大總管,並以阿史那·道真、郭待封為副將,率軍10餘萬人,征討吐蕃。
薛仁貴奉命西行,軍至大金川,即今青海省共和縣西南切吉平原。
在是否進軍烏海的問題上,薛仁貴對阿史那·道真說:“烏海地勢險要,瘴氣彌天,是我等遠來之軍的死地,可謂充滿凶險的一條路。但是,假如我們神速進軍,就一定能成功,遲疑不決就必然失敗。我建議留守一些部隊守住大本營。我們現在所處的地勢寬闊平坦,可以於險要處設置幾個懸籠,籠內裝上輜重,留萬人把守。我帶軍日夜兼程,奇軍奔襲吐蕃,必可獲勝。”
阿史那·道真同意了薛仁貴的建議。他們讓副將郭待封帶隊留守,臨行前,薛仁貴又囑咐郭待封千萬不可輕舉妄動,隻等前線消息,做好接應工作。薛仁貴安排好後,率部前往烏海。到了河口一帶,與吐蕃守軍數萬人遭遇。薛仁貴率軍一陣衝殺,將吐蕃守軍斬獲殆盡。薛仁貴收其牛羊萬餘頭,浩浩蕩蕩,向西而去,直逼烏海城。與此同時,他派千餘騎兵回大本營接運輜重。然而,不想這時郭待封已被吐蕃擊敗。薛仁貴因無輜重接濟,向大本營方向退軍。
吐蕃軍聞訊,調集40萬大軍前來進攻,唐軍抵敵不住,大敗。但吐蕃並不窮逼,以唐軍不深入為條件與唐議和,薛仁貴不得已應允,然後率敗軍東歸。
這是薛仁貴僅有的一次敗績。但此戰也使吐蕃認識到,唐軍遠師奔襲的速度快得驚人,因此不敢再於西域地區任意所為。
681年,東突厥不斷侵擾唐北境,已經69歲高齡的薛仁貴帶病冒雪率軍進擊,以安定北邊。
在雲州,也就是今天的山西省大同一帶,薛仁貴和突厥的阿史德元珍作戰。
突厥人問唐兵:“唐朝的將軍是誰?”
唐兵說:“薛仁貴。”
突厥人不信,說:“我們聽說薛仁貴將軍已經死了,怎麼還能活過來?別騙人了!”
薛仁貴聽說後,走上前來脫下頭盔,讓突厥人看看清楚。
薛仁貴威名太大了,以前曾經打敗過九姓突厥,殺過許多人,突厥人提起他都怕,現在看見了活的薛仁貴,立即下馬跪拜,把部隊撤了回去。
薛仁貴心想,這次來就是為了嚴懲你們侵擾唐境的,豈能因為受了幾拜就退兵!於是,他立即率兵追擊。雲州之戰,薛仁貴又打了一個大勝仗,斬首1萬多,俘虜3萬多,還繳獲了許多牛馬。
在此戰過後的683年,戰功顯赫的薛仁貴因病於雁門關去世。雲州之戰,竟然成了薛仁貴人生最後一場戰爭。