雖然薛舉父子聯合東突厥進攻長安的計劃破產,然而他們卻並不甘心,長安城的誘惑足以刺激他們再次進攻中原的野心。
不久後,即唐武德元年(618)六月,薛舉父子再次捲土重來,率領部隊進攻涇州(今甘肅省平涼市涇川縣),駐紮於高墌(今陝西長武西北),並縱兵一路肆意掠奪百姓財物,很快就入侵豳州(今陝西彬縣)、岐州(即扶風郡,唐初改為岐州,今陝西鳳翔)一帶。
薛舉父子來勢洶洶,然而李淵並不擔憂,鑑於李世民曾力克薛舉父子,李世民當仁不讓地成為了徵討的主帥。此時,李世民已經逐漸成為一位成熟的軍事統帥,日益凸顯出卓越的軍事才能,並在多次的戰鬥中克敵制勝。同時,大唐建國後,李淵便身居京師處理軍國大事,身為太子的李建成也開始協助李淵處理軍政事務,因此,統帥大軍平定各路群雄的重擔便落在李世民的肩上。於是,李淵便封李世民為西討大元帥,率劉文靜、劉弘基、殷開山等人繼續討伐薛舉。
七月,李世民率兵來到高墌城,擺開陣勢,準備與薛舉父子展開激戰。儘管李世民曾在隴坻大敗敵軍,然而,他並沒有因此而怠慢。經過深思熟慮的考量,李世民認為薛舉父子來勢洶洶,意在速戰速決,必定糧草不足,因此,李世民決定暫不出戰,做好防禦。於是,李世民下令加深壕溝、築高壁壘,只做好防禦,拖延戰事,使敵軍不戰而敗。
然而,天有不測風雲,正當大戰前夕,李世民竟因得了瘧疾臥床不起。李世民只得將軍事指揮大權暫時交付劉文靜、殷開山,讓他們全權負責相關事宜。李世民同時告誡二人:「薛舉父子孤軍深入,糧草必然缺乏,千萬不可輕易出兵,做好防備工作即可。等我病癒之後,再商議破軍之計。」
然而,劉文靜和殷開山並沒有聽從李世民的告誡,殷開山對劉文靜說道:「秦王只是擔憂我們不能破敵,現秦王身染重病,敵軍必定輕視我們。如果此時能夠威懾到敵軍,必定會大獲全勝。」
於是,劉文靜、殷開山二人在高墌西南的淺水原列陣迎敵,並自恃兵強馬壯不加防備。當李世民得知劉、殷二人出戰迎敵之時,派人阻止為時已晚,雙方的戰鬥已經展開。結果薛舉率領騎兵趁機繞到唐軍背後突襲,猝不及防的唐軍全面潰敗,死傷者十有五六,損失慘重。李世民帳下慕容羅睺、李安遠、劉弘基等大將也被薛舉俘虜,高墌城被薛舉父子佔領,李世民只得率領殘兵敗將退回長安。劉文靜、殷開山也因輕敵出兵被罷官。
此次淺水原之戰是李世民自太原起兵以來經歷的第一次失敗,而且是慘敗。雖然淺水原之敗劉文靜、殷開山私自出兵的因素佔絕大部分,但是和李世民輕敵的思想也不無關係。這次失敗,使年輕氣盛的李世民變得更加成熟,重新審視與薛舉父子之間的戰爭。同時這次失敗也給心高氣傲的唐軍將領一個沉重的教訓,告誡他們在行軍打仗時切忌心浮氣躁,不可輕敵。隨後,李世民便上書李淵,挑選精兵強將,加緊軍隊訓練,準備再次討伐薛舉父子。
此時,大獲全勝的薛舉正是信心滿滿的時候,尤其是郝瑗更是建議薛舉乘勝追擊,直取長安。但是,就在大軍出兵東徵前夕,薛舉暴病而死。之後,薛仁杲繼承薛舉帝位,為秦帝,並進駐折墌城(今甘肅涇川東北)。然而,因為薛仁杲生性殘暴,和軍中將領多有嫌隙,西秦內部開始出現猜忌、分裂。另外,西秦謀士郝瑗竟因薛舉暴斃傷心過度而臥床不起,薛仁杲又失去一得力助手。遭遇如此巨大變故,西秦大軍不得不延緩攻打長安的步伐,這就為李世民備戰提供了良好的機會。
隨後,李淵趁機派李世民再次率領大軍攻打薛仁杲,這次李世民吸取了失敗的教訓,等到大軍逼近高墌城時,令軍隊堅壁不出。此時,唐軍將領頻頻請令出兵,均遭到李世民的拒絕,並告誡道:「我軍剛剛遭遇失敗,士氣受挫。相反敵軍因取勝而自驕,必定輕敵好鬥,現在我軍避而不出,折殺敵軍銳氣,等到對方氣衰之時奮起追擊,必定一戰而勝。」同時,李世民更是傳下軍令:如再有敢言出戰者斬。
就這樣,李世民和薛仁杲足足對峙了六十多天,西秦軍隊糧草殆盡,軍心浮動,眾多將士相繼歸順李世民,其中就包括西秦內史令翟長孫、梁胡郎以及薛仁杲的妹夫鍾俱仇。此時,李世民看到薛仁杲手中將領已經有了離異之心,認為時機已經成熟,便開始部署將領準備出擊。
李世民令行軍總管梁實率一小部分部隊駐紮於淺水原,引誘薛仁杲前來進攻。果然,有勇無謀的薛仁杲很快中計,派大將宗羅睺傾巢出動,猛攻淺水原。而梁實卻據險而守,拒不出兵,宗羅睺久攻不下,士氣嚴重受挫。李世民則乘機派右武侯大將軍龐玉率軍逼近淺水原,宗羅睺只得調轉部隊抵禦龐玉的攻擊,正當雙方展開激戰的時候,李世民親自率領騎兵從北面突襲,頓時西秦大軍陷入唐軍的重重包圍之中,連連潰敗。宗羅睺帶領殘兵不斷向折墌城撤退,李世民率輕騎兵乘勝追擊。
這時,大將竇軌(岐州人,李淵起兵時,竇軌招募千人歸附)勸諫道:「薛仁杲據險而守,雖然我軍大破宗羅睺,但不可輕易追擊,應按兵觀察伺機而動。」李世民則認為,現在正是破敵最好時機,不可錯失,便一直追擊到折墌城。等到李世民到達折墌城時,薛仁杲已經在城下布好陣勢,李世民則守住涇水南岸,切斷宗羅睺的退路,孤立無援的薛仁杲只得退入城中據守。
不久,唐軍各路大軍陸續趕到,對摺墌城形成合圍之勢,西秦軍中的將領見薛仁杲大勢已去,紛紛出城投靠李世民。薛仁杲已經是眾叛親離、走投無路,不得已向李世民投降。薛仁杲部下精兵一萬,民眾五萬皆被李淵收撫,而宗羅睺等將領盡歸於李世民帳下。李世民將西秦投降的士兵全部交給薛仁杲兄弟、宗羅睺、翟長孫等將領統領,對降將也是一視同仁,因此,眾人心悅誠服、以死效忠。
淺水原之戰,李世民先是遭遇慘敗,然而,在短時間內便重整旗鼓,大獲全勝,徹底擊敗了薛仁杲西秦大軍。這不得不歸功於李世民過人的軍事才能,也證明了李世民在戰鬥中的成長和成熟。折墌城攻破之後,眾將領曾向李世民請教戰勝強敵的原因:「秦王一戰而勝,驟然捨棄步兵,僅以輕騎追至城下,秦王無攻城戰具,眾人都認為不能攻克。而現城池很快攻克,究竟是什麼原因?」
李世民答道:「宗羅睺的部下都是隴西人,將士和士兵都驍勇善戰,我軍出其不意大獲全勝,但是,斬殺俘獲的將士卻甚少。如果不迅速追擊,待他們回到城中為薛仁杲所用,折墌城則很難攻破。我軍迅速追擊,潰敗的敵軍散布在隴西,而折墌城得不到增援,薛仁杲根本來不及謀劃,只能投降。這就是敵軍被迅速攻克的原因。」眾將士聽了李世民的分析,不禁心悅誠服。
隨後,李世民帶領大軍凱旋返回長安,並將薛仁杲斬首於市。自此,李世民憑藉傑出的軍事指揮能力,掃蕩西秦,解除了唐朝來自隴西地區的威脅,消滅了關中周邊第一個強勁的對手。李世民受封為太尉、使持節、陝東道大行臺,蒲州以及黃河以北各府的兵馬皆歸李世民指揮。
唐武德二年(619),李軌的大涼政權內部矛盾重重,李軌聽信讒言殺害禮部尚書梁碩,後又大興土木,拒絕賑濟災民,導致大涼百姓怨聲載道,朝廷官吏人心叛離。後大涼戶部尚書安修仁和在唐朝為官的安修貴發動兵變,擒獲李軌,並押至長安。不久之後,李軌被處死,李淵又平定了河西五郡地區。
至此,唐王朝平定了隴西薛舉、薛仁杲父子,以及河西李軌,關中地區的幾大強敵已經消滅了兩個。於是,平定劉武周就成為了唐朝統一天下、鞏固政權的下一個目標。