李密對李淵的信任,讓李淵西進長安更加放心了。
大業十三年七月,李淵令四子元吉留守太原,親自率3萬大軍出征,向長安進軍。
西取長安的進軍路線是沿汾河東岸南下,直取潼關,消息傳到長安後,留守京師的代王楊侑立即派精兵兩萬駐霍邑(今山霍縣),由宋老生統領。阻截李淵西進。屈突通率數萬在河東抵抗。
當李淵的大軍行至霍邑約五十裏時,時逢秋雨連綿,久降不停,道路泥濘,糧草短缺,而且霍邑地形險要。軍糧一天天地減少,於是派遣府佐沈叔安回太原運糧草。這時,軍中也謠傳劉武周聯合突厥軍隊南下,襲擊晉陽,一時又不能證實虛實,使得將士們惶惑不安,害怕得要命!
老成持重的李淵招裴寂等人商量對策。裴寂說:"今天氣惡劣,糧草短缺,必影響軍心,而且宋老生與河東屈突通遙相呼應,李密雖已被我們穩住,但他老奸巨滑,不可預測。突厥貪利而無信,惟利是圖!劉武周也欲稱霸天下,不會甘心我們就此西進,不如先回太原,穩住軍心,再西進也不遲。"
沒主見的李淵說:"說的有道理,攻取長安的時機未到,應該趕緊北返,保住老家要緊!"
李世民反對說:"這時莊稼已經成熟,還擔心會餓著大家嗎?隋將宋老生,生性急躁,輕易就可將其擒拿,而李密考慮到糧草問題,隻注意眼前,無暇顧及遠方,不會輕易出兵。劉武周表麵依附突厥,實際突厥根本不把劉武周放在眼裏,而且突厥不守信用,貪圖利益,他們互相猜疑,未必同謀!雖然劉武周有窺視太原的心,但他也不會忘記自己根據地馬邑,而且突厥剛與我們和好,暫時不會侵犯我們。既然父親有誌救民於水火。應當先入鹹陽,號令天下!現在遇到小敵,就要撤退。恐怕會叫隨軍的士兵心灰意冷,各自散去,對我們的損失不是更加重大嗎?"
李淵與裴寂眾人傾聽著,李世民進一步闡述說:"而且我們每進攻一個地方,都有士兵投至部下;而且我也願意捐軀力戰,雨停之後,立刻進軍,如果我不取宋老生頭顱,爭取霍邑,我願以死謝罪!"
李建成讚成李世民的意見,說:"我願與世民同行,舍命進攻霍邑!"
但老頑固李淵並沒采取李世民的建議,第二天還是下令撤軍了,幸好他撤的不夠徹底!
李世民見父親未采納他的建議,於是和哥哥建成商量,向父親進諫,但天已晚,父親李淵已經睡覺。兄弟兩個不敢貿然進去,為宏圖大業將毀於一旦痛惜萬分,不禁失聲痛哭起來,簡直哭得一塌糊塗!李淵被悲涼的哭泣聲驚醒了,便問道:"誰在帳外哭泣啊?"
"大人,是我和弟弟世民!"李建成說。
李淵將兩人召入帳內,問道:"兩個男子漢,為何如此痛哭啊?"
李世民再次進諫說:"今已起兵,有進無退;如果前進,我們就有取得勝利的機會,如果後退,動搖軍心,銳氣喪盡,隊伍潰散,敵人趁勢追擊,我方軍隊將土崩瓦解,那不是束手待斃嗎?你說我怎麼不哭?"
李淵聽李世民這麼一說,刺激了他腦神經,讓他開了竅,有所省悟,說道:"你看大軍已向北出發,你看如何是好?"
李世民見父親態度有所轉變,有些激動地說:"右軍還沒出發,出發的左軍還沒走遠,我立刻把他們追回來!"
李淵見李世民有如此見識,於是高興地說:"成敗由你,那你們立即出發,追回已經出發的軍隊!"
李建成、李世民接受父親的命令,連夜乘馬北馳,累得骨頭要散架,血管要爆裂!總算把全部北上的左軍追還。
過了兩天,沈叔安運來糧草,天氣也漸漸放晴。
李淵命令士兵繞行山麓,避開泥濘,直往霍邑進發。但宋老生堅守不出戰,
於是,李世民又建議李淵說:"宋老生勇而無謀,我和建成,率數十騎兵進至城下,假裝做出攻城的姿勢,一方士兵詬罵城中士兵無能,不敢出戰!激將他們出戰!"
李淵采取了李世民的這個建議,讓士兵們發揮他們的罵功,把敵方的祖宗十八代數來都罵一遍,罵得他們身上起雞皮疙瘩,看他們出不出戰!
果然,在辱罵聲中,宋老生老羞成怒,率領3萬士兵從東門、南門出戰;李淵下令收縮陣地,隋軍以為李淵畏懼而退,便引兵前進。這時李淵的步兵相繼感到,李淵和李建成率兵列陣城東,李世列陣城南,城內隋兵自東門馳出,列陣正式與隋軍對峙。
這時,宋老生又從南門出發,向東城進發,興高采烈地夾擊李淵。這時,李世民正睜大眼睛,在城南觀戰。
李世民看準時機,迅速和軍頭段誌玄,率軍衝擊宋老生的背後。
李世民與宋老生的士兵交戰,手握戰刀,爭先殺敵,連誅數人,滿身鮮血,段誌玄緊跟其後,奮力拚殺,殺得敵人望風披靡,人仰馬翻!
李世民命令士兵大呼:"宋老生已經被我們活捉,隋軍趕快投降。"