随后,经过准备多时的李渊传檄各州、县,宣布正式起兵。李渊管辖内的西河郡隋将得知李渊起兵的消息,依城拒守。李渊只好派儿子李建成、李世民率兵攻打西河,并派太原令温大有参谋军事。西河郡兵微将寡,郡丞高德儒闭门守城。但是李建成仅仅用了9天时间便攻下西河君,杀死了不肯叛乱的高德儒。至此,李渊作为太原留守管辖的五个郡的地盘除了三个郡被刘武周占领外,剩下的太原与西河两军皆归李渊所有。
拿下西河郡后,李渊命令开仓赈饥,招募士兵。并开大将军府,置三军,李渊亲任大将军。以长子李建成为陇西公、左领军大都督,统领左军;次子李世民为炖煌公、右领军大都督,统领右军;小儿子李元吉为姑臧公,统领中军。裴寂为长史,刘文静为司马。
大业十三年(617)七月,李渊率隋军三万在太原誓师,进军关内并正式发布檄文。发布的檄文里,李渊斥责皇帝杨广听信谗言,杀害忠良,穷兵黩武,致使民怨沸腾,“豺狼充于道路”,在檄文里李渊声明自己起兵是要废掉昏君杨广,然后拥立代王杨侑为帝,“尊天子为太上皇,立代王为帝,以安隋室”。而他自己则建大将军府亲任大将军,世子李建成为左领军大都督,李世民为右领军大都督,刘文静任大将军府司马。其实,这仅仅是李渊的一种号召天下的策略而已,因为他清醒地认识到,此时的大隋王朝,是百足之虫、死而不僵。如果自己一开始就打出反对大隋的旗子,那就不明智了。
这时,正在攻打洛阳的李密兵锋正盛,有席卷天下的气势,所以李渊就写信给李密希望结盟共同对付隋军。李密见信后,回复李渊说结盟可以但是要他亲自到河内(今河南沁阳)和他商量结盟的事。李渊见信后说:“密妄自矜大,非折简可致。吾方有事关中,若遽绝之,乃是更生一敌;不如卑辞推奖,以骄其志,使为我塞成皋(虎牢关)之道,缀东都(洛阳)之兵,我得专意西征。俟关中平定,据险养威,徐观鹬蚌之势。以收渔人之功,未为晚也。”于是李渊给李密的信中很卑恭地说:“天生烝民,必有司牧,当今为牧。非子而谁,老夫年逾知命,愿不及此”。李密在接到李渊信后,见李渊如此推崇自己,就放松了对李渊的警惕并和他简单结盟。李渊的大意不仅疏忽了对李渊图天下野心的戒备,而且还实际为李渊造反牵掣了隋军主力。使隋军不能西救关中长安。
七月,誓师过后的李渊命李元吉留守太原,自己亲率3万大军西突厥兵协助下,向关中进发。李渊起兵的消息传到长安后。长安留守的代王杨侑派宋老生率兵三万屯在霍邑(山西霍县),屈突通率大军扼守河东(山西永济),以防备其西进。
李渊率大军循汾水进军,到了贾胡堡,距霍邑五十余里。这时,连日阴雨,军队受阻不能前进,而且军队缺粮。特别是有传言说刘武周联合突厥将进犯太原。这时。裴寂等认为:宋老生、屈突通连兵据险,不易解决;李密表面上答应联合了,但靠不住。突厥贪而无信,唯利是图,联合刘武周进犯是可能的,将士家属都在太原,太原地位很重要,“不如还救根本,更图后举”。李渊同意后下令退兵回太原。
李世民不同意退兵的策略,便苦谏父亲李渊说:“现在正是收获季节,田野到处都是菽谷,何必担心粮食不够?”同时他认为刘武周与突厥“外虽相附,、内实相猜”,刘武周不会舍掉马邑去袭太原,。还有李世民认为对面的“宋老生轻躁,一战可擒”。最后他建议父亲只有抓紧时机;照原来方针“先入咸阳,号令天下”,才是正确的决策,并且说如果一点小的挫折便行退兵,必然会造成“众散于前,敌乘于后”的局面,使自己陷于复灭的命运。
李建成也支持李世民的主张,也反对退回太原。考虑再三的李渊随后改变退军决心,追回部队重新围攻霍邑。
李渊的这个重要战略决策,对李渊的发展,有着决定性的影响,首先李渊刚刚起兵,军心士气还不巩固,如果遇挫折而退兵,必然会陷于瓦解不可复振。再者关中战略地位重要,而且当时空虚,图之者还大有人在,关西的薛举也意图关中长安,还有差不多就在李渊起兵同时,柴孝和就曾劝李密舍掉洛阳入关中,以图天下,李密没有采纳,但时间一久,变化就不可知了,所以必须趁机,捷足先登。如果李渊没有改变他自己退兵的决定,李洲可能会像李密一样最后对关中无能无力,从而丢失争霸天下的根本。
八月,大雨停止了,回军的李渊率骑兵沿小路奔霍邑,宋老生守城不出。李渊无奈就派李建成、李世民率领几十骑到城下辱骂宋老生,同时自己率领骑兵在城东埋伏。宋老生乃率众三万自东门、南门分道而出。李渊这时即同李建成左军结阵于东门,令李世民右军结阵于南门,以断宋老生的逃路。成阵之后,又怕宋军背城不肯远战,乃命令军队向后收缩,伪作退避宋军模样。宋老生果然认为李渊畏缩,在距离城一里余地方布阵。不久李渊的后续部队来到,李渊想命部队就食后再战,李世民认为,“时不可失”,遂发动了的进攻。一交锋,李渊、李建成在城东的阵势不利,便向后引退,李世民发现宋