就在李淵處心積慮地準備出兵之時,隋煬帝楊廣正在江都醉生夢死。終煬帝一生,他對於長安的惡感要遠遠大於好感,這種不可思議的感情其實源自其父親隋文帝楊堅。楊堅當年篡了北周的位,自己當上了皇帝,可是他這個皇帝的位子坐得卻不是那麼穩。楊堅的父親是上文提到過的楊忠,在西魏的“八柱國”軍事係統中是一個大將軍,並沒能當上柱國,而楊堅在朝中也並沒有建立讓人信服的功業,能夠篡位成功實在是得益於當時北周皇帝年幼,因此無論是資格還是實績,楊堅均不能讓當時的關隴軍事貴族集團的貴族們服氣。麵對如此情況,楊堅隻有以刻薄寡恩,大殺昔日同僚來穩固自己的統治,可是這些軍事貴族盤根錯節,互相之間多有聯姻,隋朝的統治也依然需要他們的幫助,因此不可能完全清除幹淨。楊堅引入了科舉製度也是為了抵消關隴軍事貴族的影響,但是在當時這僅是杯水車薪,完全不頂用。父親對關隴軍事貴族的猜忌也深深地影響了兒子,隋煬帝的內心深處也對於處在關隴心髒地帶的首都長安有著很大的惡感,因此在巡邊失敗之後,他並不是回到長安重整旗鼓,而是去了江都破罐子破摔。隋煬帝覺得長安不好,可是李淵卻正相反。李淵是西魏八柱國李虎的後人,是頂級門閥李家的家長,在關隴軍事貴族集團中的號召力數一數二,因此他起兵後的目標就是攻取長安,以關中為基業,奪取天下。
大業十三年(617),李淵正式開始出兵,但是他出兵的方向卻並不是長安,而是太原周邊的西河郡(治所今山西汾陽)。西河郡的郡丞高德儒,不聽從李淵的命令。李淵此時幹的是殺頭滅族的買賣,自然不會允許自己的太原老巢附近有任何隱患。他結交突厥便使得劉武周不敢輕舉妄動,這個西河郡不過孤城一座,身後又沒有突厥這樣的大後台,正好撞到了李淵的槍口上。此外從太原去長安的最佳路線是沿汾河向南推進至晉南,再渡黃河向西,西河郡正好擋在了李淵進軍關中的路上,李淵更是必須拔掉這個釘子。進攻西河郡的難度不大,李淵便派了李建成和李世民哥倆練手,又派了太原令溫大有從旁輔助,以防萬一。此次軍事行動是大軍入關中的一次預演,因此李淵軍上下都非常重視。李建成、李世民這哥倆到了軍中可沒有一點公子哥的德性,當時李淵的部隊大部分都是新募之兵,軍士們都沒有經過係統的訓練。於是二人與士兵們同甘共苦,遇到敵人則是身先士卒。部隊平日的所吃所用都向老百姓公平買賣而來,從不強行征拿。軍隊中有些士兵手腳不幹淨,他們的處理也非常寬容,他們賠償老百姓的損失,但是也並不苛責偷竊的士兵。於是百姓與士兵都對李家非常敬服。有了軍隊和人民的支持,一個小小西河郡自然輕易就被拿下。李家大軍到了城下不過數日西河郡便被攻克,郡丞高德儒作為罪魁禍首直接被處斬。當然殺他需要一個借口,此時李淵又不是皇帝,不可能說是你高德儒不服從我的命令,所以要殺,於是就給他安了一個奸臣的罪名。這個高德儒以前曾是楊廣的侍衛。有一次,他看到兩隻孔雀飛到朝堂之前,便去向煬帝謊報說發現鸞鳥(吉兆)。等煬帝興衝衝跑去觀賞時,孔雀早已飛走,也搞不清真偽。盡管如此,興高采烈的楊廣還是重賞了高德儒,並於孔雀落腳處修建了一座儀鸞殿來紀念。因此李世民就說他“指鳥為鸞”,用這個罪名殺了他。此次征討,李家隻處死了一個高德儒,所有的從犯一律被赦免。這種情形既顯現了李家的雷霆手段,又不乏天恩雨露,讓當地軍民無不敬服。此次軍事行動從出發開始,到凱旋太原,隻不過用了區區九天。李淵喜出望外,高興地說:“這樣的軍隊,可以橫行天下了!”
用軟硬兼施的手段將太原周邊的反對派徹底收拾了之後,李淵留下四兒子李元吉坐鎮太原,發兵三萬正式於大業十三年(617)七月初誓師向關中進發。
李淵出兵之後還不是很放心,率全軍到了西河之後又搞了一個官職歡樂大派送,大發了一圈糖。隻要來的全都有官做,一天就派發了上千個官職。所以有人說初唐官員之濫已經到了“柱國滿街走,國公多如狗”的地步了。他在八字還沒一撇的時候就這樣大發官職,除了籠絡人心之外,還等於是把那些接受他冊封的人統統綁上了他造反的戰車。如果他失敗了,接受他封官的人哪個都好不了。隻有拚死力幫助李淵得到天下,他們獲封的官職才有用。
做完這些事情之後李淵率軍穿越雀鼠穀,進入了賈胡堡屯紮。隨後他遇到了大麻煩:他的軍隊被一場突如其來的連綿大雨給擋住了。此時李淵軍前有虎牙郎將宋老生率軍兩萬在霍邑(今山西霍州)擋住去路,又有左武侯大將軍屈突通將驍果數萬屯河東郡城(今山西永濟西南蒲州鎮)與李淵對峙。軍中糧食不繼,還有謠言說突厥破壞先前的協定,即將與劉武周聯軍攻打此時空虛的太原,因此官軍都有了退意。以裴寂為首的將領們紛紛請求李淵暫時撤兵返回太原,穩守老家,靜待時機。李淵的能力不能說不優秀,但是他身為頂級門閥族長幾十年,天天都在皇帝的猜忌下生活,養成了事事謹小慎微的保守性格,部下的這種意見很對他的胃口,決定就此退兵。可是李世民卻持相反的意見。他認為困難都是一時的,當前要做的是緊咬牙關衝過去,而不是遇到一點點困難就想著退縮。一旦退兵,恐怕我們以大義召集起來的軍隊就會散夥,回到太原也不過是賊寇的身份罷了。可是這番話李淵並沒聽進去,還是堅持要退兵。李世民沒辦法,於是去找李建成,希望兩人一起勸說李淵收回成命。李建成雖然同意李世民的意見,但卻認為此時已經開始撤軍,事情已經無法挽回,還是服從命令吧。李世民卻沒有就此放棄,他一個人跑到李淵的帳前,此時天色已晚,李淵已經睡下,把守大帳的軍士不讓李世民進去。李世民居然一點不顧形象地就在帳外號啕大哭,李淵隻能叫他進去問話。
李世民進來劈頭就說:“要是撤兵,人心就散了,敵人如果在後麵追殺,大家完蛋的日子也就不遠了!我怎麼能不哭?”李淵想想的確是這樣,現在不是在過家家,而是在幹造反的買賣,如果真的這樣猶豫不決,可能下場真的會像兒子說的那樣了。他這才醒悟過來,後悔不已。但是此時軍隊已經開始後撤了,他問李世民怎麼辦?李世民說右軍此時剛剛整備好,還沒有出發,左軍也剛走了不久,追回來還來得及,於是立刻與李建成分頭去追。結果半夜裏他黑燈瞎火迷失了道路,走到了山穀中,馬匹走不了山路,隻好棄馬步行追趕,終於追上了左軍,和他們一起步行返回。
受困賈胡堡是唐軍自起兵以來所遭遇的最大困難:後方根基不牢,前有勁敵當道,偏偏還深陷泥澤、糧草不濟,似乎所有的不利因素都一股腦地集中湧現出來,此時便明顯地可以看出李淵父子三人不同的性格。李淵的性格是保守但卻非常識時務,李建成則是聰明但卻顯得有些軟弱,而李世民則是堅韌不拔、不屈不撓。三人最後的結局與其性格不無關係。
八月初一,天開始放晴。第二天,李淵命令部隊晾曬潮濕的鎧甲、器械、行裝等。第三天早晨,他便率軍從山腳下的小路向東南直抵霍邑。李淵擔心宋老生不出戰,要是宋老生死守不出,李淵還真拿他沒什麼辦法。他的擔心並非沒有道理,當李淵在賈胡堡駐紮的時候,宋老生兵力與李淵相若,但卻並沒有發兵攻打,而隻是擺出了一副防守的架勢,顯然是有些心虛的。李世民與李建成倒是不怕宋老生死守,尤其是李世民,他當時就說:“我們隻要輕騎去挑逗一下,宋老生必然會出城。如果他真的能忍,我們就汙蔑他跟我們有關聯,他要是不想被左右的監視人員打小報告,就不敢不出戰。”於是他們率領幾十騎到城下,舉鞭揮旗就像要包圍城池的樣子,並且極力羞辱宋老生。宋老生被激怒了。立刻率領三萬人從東南兩門分道出戰。李世民哥倆一看宋老生中計,立馬飛騎回到本陣。此時李淵想按照慣例讓士卒吃飽飯再進行戰鬥,但卻被李世民否決,可能是因為宋老生的軍隊在後麵追得非常緊。