大业十三年(公元617年)李渊正式开始出兵,但是他出兵的对象却并不是长安,却是太原周边的西河郡(治所今山西省汾阳市)。这个西河郡的郡丞高德儒很牛气,不听从李渊的命令。李渊此时干得是杀头灭族的买卖,自然不会允许自己的太原老巢有任何隐患。他结交突厥便使得刘武周不敢轻举妄动,这个西河郡不过孤城一座,身后又没有突厥这样的大后台,正好撞到了李渊的枪口上。此外从太原去长安的最佳路线是沿汾河向南推进至晋南,再渡黄河向西,西河郡正好是挡在了李渊进军关中的路上,李渊更是必须要拔掉这个钉子。由于进攻西河郡的难度不大,李渊便派了李建成和李世民哥俩练手,又派了太原令温大有从旁辅助,以防万一。
李渊当时有这么一句话,就是这次的军事行动就能预示他到底会不会获得最后的成功,可以说是大军入关中的一次预演,因此上下都非常重视。李建成、李世民这哥俩也的确很争气,他们到了军中可没有一点公子哥的德性,当时李渊的部队大部分都是新招募而来,军士们都没有经过系统的训练。于是这哥俩与士兵们同甘共苦,遇到敌人则是以身作则,第一个上。平时所吃的东西都向老百姓公平买卖而来,从不强行征拿。军队中有些士兵手脚不干净,他们的处理也非常有学问,首先他们赔偿了老百姓的损失,但是也并不苛责偷窃的士兵。于是老百姓跟士兵们都对李家非常敬服。
有了军队和人民的支持,单独一个西河郡又能做得了什么呢?李家大军到了城下不过数日西河郡便被攻克,郡丞高德儒作为罪魁祸首直接被处斩,当然杀他自然需要一个借口,此时李渊又不是皇帝,当然不可能说是你高德儒不服从我的命令所以要杀,于是就给他安了一个奸臣的罪名。这个高德儒以前曾是杨广的侍卫。有一次,他看到两只孔雀飞到朝堂之前,便去向炀帝谎报说发现鸾鸟(吉兆)。等炀帝兴冲冲跑去观赏时,孔雀早已飞走,也搞不清真伪。尽管如此,兴高采烈的杨广还是重赏了高德儒,并于孔雀落脚处修建了一座仪鸾殿来纪念。因此李世民就说他“指鸟为鸾”,用这个罪名杀了他。其实就算是当时高德儒谎报了吉兆,那也不过就是逗逗隋炀帝开心罢了,根本算不得什么大奸大恶,甚至他举兵对抗李渊的行为用忠臣形容也不过分。不过为了李渊大义的名声,他也只能委屈地成为衬托正面光辉形象的反派角色了。此次征讨,也就处死了一个高德儒,除了他之外所有的从犯一律被赦免。既显现了李家的雷霆手段,又不乏天恩雨露,这让当地军民无不敬服。此次军事行动从出发算,到凯旋回归太原,只不过用了区区九天,这样李渊喜出望外,他当时就高兴地说:“这样的军队,可以用来横行天下了!”
用软硬兼施的手段将太原周边的反对派彻底收拾了之后,李渊留下四儿子李元吉坐镇太原,发兵三万正式于七月初誓师向关中进发。出兵的时候很好玩,老李的借口是拥立杨广的孙子代王杨侑。可偏偏这个代王杨侑现在就在长安镇守得好好的,需要他来拥立个鬼。甚至这个被拥立的代王杨侑压根都不领情,直接派了宋老生来打李渊,给李渊造成了不小的麻烦。当然所谓的拥立不过就是一个借口,李渊知道,杨侑知道,天下人其实都知道,但是偏偏这样的借口就是不能少,这也算是中国政治史上一个独特的景象了。
李渊出兵之后还不是很放心,率全军到了西河之后又搞了一个官职欢乐大派送,大发了一圈糖。只要来的全都有官作,一天就派发了上千个官职。所以有人说初唐官员之滥已经到了“柱国满街走,国公多如狗”的地步了。当然李渊这不是发神经病,而是一种非常有深意的举动。他在八字还没一撇的时候就这样大发官职,除了笼络人心之外还等于是把那些接受他册封的人统统绑上了他造反的战车上。如果他失败了,那接受他封官的人哪个都好不了。因此只能拼死力帮助李渊得到天下,那么他们获封的官职才有用。此外李渊生怕李密对关中也有想法,也怕洛阳守军会支持长安。于是尽拿好话忽悠李密,捧得李密开心不已,让李密在洛阳外虚耗时间,与洛阳守军死磕,为李渊成功入主长安吸引天下的注意力。
做完这些事情之后李渊率军穿越雀鼠谷,进入了贾胡堡屯扎。所谓天有不测风云,李渊此时就遇到了大麻烦。他的军队被一场突如其来的连绵大雨给挡住了。等了很长时间雨都不停,此时李渊军前有虎牙郎将宋老生率军两万在霍邑(今山西霍州)挡住去路,又有左武侯大将军屈突通将骁果数万屯河东郡城(今山西永济西南蒲州镇)与李渊对峙。军中粮食不继,还有谣言说突厥破坏先前的协定,即将与刘武周联军攻打此时空虚的太原,因此大家纷纷有了退意。在这种情况下李世民、李建成以及李渊之间就有了一场精彩的互动。首先是以裴寂为首的将领们纷纷请求李渊暂时撤兵返回太原,稳守老家,静待时机。李渊这个人能力不能说不优秀,但是他身为顶级门阀族长几十年,天天都在皇帝的猜忌下生活,于是养成了事事谨小慎微的保守性格,因此部下的这种意见很对他的胃口,因此就决定退兵。可是李世民却持相反的意见。
他认为目前的困难都是一时的,当前要做的就是紧咬牙关冲过去,而不是遇到一点点困难就想着退缩。一旦退兵恐怕我们以大义召集起来的军队就会散伙,回到太原也不过是贼寇的身份罢了。可是这番话李渊并没听进去,还是坚持要退兵。李世民没办法于是去找李建成,希望两人一起劝服李渊收回成命。可是李建成虽然同意李世民的意见,但是却认为此时已经开始撤军,事情已经无法挽回,还是服从命令吧。但是李世民却没有就此放弃,他一个人跑到李渊的帐前企图说服他老爹。这时候天色已晚,李渊已经睡下,把守大帐的军士不让李世民进去。结果李世民居然一点不顾形象地就在帐外嚎啕大哭。“你老子还没死呢,在外面哭什么丧?”,此时李渊心中很是不快,但是让儿子在外面哭嚎也不是个事,只能叫进来问话。
李世民进来劈头就说:“要是撤兵,人心就散了,队伍就不好带了,敌人如果在后面追杀,大家完蛋的日子也就不远了!我怎么能不哭?” 李渊想想的确是这样,现在不是在过家家,而是在干造反的买卖,如果真的这样犹豫不决地保守作风,可能下场真的像儿子所说的那样了。李渊醒悟过来才后悔不已,但是此时军队已经听从他的命令向后撤退了,他问李世民怎么办?李世民说右军此时刚刚整备好还没有出发,左军也刚走了不久,追回来还来得及,于是立刻与李建成分头去追。结果半夜里黑灯瞎火迷失了道路,走到了山谷中,马匹走不了山路,于是弃马改步行追赶,终于追上左军,和他们一起步行返回。可以说受困贾胡堡是唐军自起兵以来所遭遇的最大困难:后方根基不牢,前有劲敌当道,偏偏还深陷泥泽粮草不济,似乎所有不利因素都一股脑的集中涌现出来,此时便明显地可以看出李渊父子三人不同的性格。李渊的性格是保守但却非常识时务的,李建成则是聪明但却显得有些软弱,有点和光同尘的味道,而李世民则是坚韧不拔,不屈不挠,好强而不服输。所谓性格决定命运,之所以李世民日后能够最终当上皇帝,从这件事便可以管窥一二。
八月初一,天开始放晴。第二天,李渊命令部队将潮湿的铠甲、器械、行装等晾晒。第三天早晨,李渊便率军从山脚下的小路向东南直抵霍邑。这时候李渊很担心宋老生不出战,这个时代不论哪支军队攻城都是个麻烦事。要是宋老生死守不出,李渊还真拿他没什么办法。李渊的担心并非没有道理,当李渊在贾胡堡驻扎的时候,宋老生兵力与李渊相若,但却并没有发兵攻打,而仅仅是摆出了一副防守的架势,显然是有些心虚的。李世民与李建成倒是不怕宋老生死守,尤其是李世民,他在太原就敢坑他老爹,此时坑个宋老生还是非常轻松的。他当时就说:“我们只要轻骑去挑逗一下,宋老生必然会出城。如果他真的能忍,我们就污蔑他跟我们有一腿,他要是不想被左右的监视人员打小报告,就不敢不出战。”不能不说这主意非常地阴狠,让宋老生在战前就已经处在了下风。
于是他们率领几十骑到城下,举鞭挥旗就象要包围城池的样子,并且极力羞辱宋老生。宋老生也是个有勇无谋的,立时就被激怒。立刻率领三万人从东南两门分道出战。李世民哥俩一看宋老生中计,立马飞骑回到本阵。此时李渊想按照惯例让士卒吃饱饭再进行战斗,但却被李世民所否决,这可能是宋老生的军队在后面追得非常紧的缘故。于是李渊将军队分为两军,李渊与李建成为一军,在东面列阵。李世民与柴绍为一军,在南面列阵,等待宋老生。宋老生挟怒而来,见到李渊的旗号之后就向东军全军突击。李渊被宋老生的当头一棒打得好悬没架住,李建成都被从马上打落,只能向后不断退却。李世民赶忙领军从南面杀入,将宋老生的军队一分为二。这一战可谓是李渊军成军后打得第一场硬仗,虽然用尽计谋,但是依然打得惊险无比。
当时号称李世民身先士卒,亲手杀死几十人,两把刀子都砍缺了口,飞溅的鲜血沾满衣袖,世民将血甩掉继续战斗。这样的奋战才让李渊终于稳住了战线,没有被宋老生所击破。此时战场形势朝着李渊一方开始倾斜,于是李渊又派人大喊:“已经抓住宋老生了!”宋老生军于是大败。宋老生本人赶忙向回逃跑,李渊在后紧追。结果非常搞笑的是城内惊恐,居然不等宋老生入城就把城门给关了起来。估计这个时候宋老生肯定会大骂守城将官不讲义气。但是这时候说什么也晚了,他跳入壕沟逃命,却被刘弘基斩杀,沿途几里内全都是隋军尸体。此时天已经黑了,李渊也不等天亮,便下令攻城。李渊军此时并没有什么攻城器械,于是士兵们只能靠肉体攀登城墙硬上,靠这样的方式攻下了霍邑。打下霍邑之后李渊又开始搞有奖大派送,不单单将良家子和奴隶这两种身份不同的士兵一视同仁,只论军功不论贵贱。此外有关中士兵想要回家的都封了五品散官,大大地笼络了人心。