大业十三年(617年)七月初一,李渊起兵晋阳,正逢天下大乱之际,群雄并立,各据一方。此时若想“号令天下”,成就帝业,占据大兴(长安)或洛阳无疑是最好的选择。
由于洛阳、大兴作为隋朝东西两京,具有文化传统上的正统地位,在时局纷乱、天下无主的形势下,坐镇洛阳或大兴,可以籍其威权,号令天下,塑造自身的正统地位。而李渊所据的太原,虽然山河险固,但僻居一隅,虽可割据,但想要“号令天下”则不太现实。不过太原与大兴(长安)、洛阳成鼎足之势,麾兵南下,无论是西图关中,建都长安,还是东进河洛,定鼎洛阳,都可制命天下。
七月十四,大军到达西河郡,经雀鼠谷,再到达霍邑(今山西霍县)西北的贾胡堡。李渊的反叛直接威胁到了隋京城长安,代王杨侑(隋炀帝长子杨昭第三子,当时留守长安)已派宋老生领精兵二万屯驻霍邑,同时派屈突通屯驻河东,阻击李渊越过黄河进军长安。
其时连日下雨,李渊在贾胡堡无法进兵,军粮也快吃尽,又有流言说北方突厥和刘武周有南下袭取太原的计划,李渊一度想要退兵,但在李世民的不停规劝下,最终坚持了下来。八月初一,天气转晴,太原的粮草也送达,李渊遂命李建成佯攻,并将宋老生引诱出城,再命李世民率骑兵冲击,宋老生大败之下被斩于阵中。
此战其意义不仅仅是振奋了士气,更重要的是打通了西入关中的通道,使出山西入关中成为可能,在战略决策上,也打消了一部分人欲退回太原的想法,使继续西进成为必然。之后,李渊又乘胜攻克了临汾、绛郡(今山西新绛),直抵黄河边的龙门。
龙门是今山西的河津,是过黄河的一个渡口,在此既可直接渡过黄河,进军关中,又可南下攻打河东(今运城管界)。在这里,又发生了一场争论,薛大鼎劝李渊勿攻河东,只要占据永丰仓(隋唐之交永丰仓在今潼关港口镇西村附近),扼守潼关,传檄远近,关中可坐取也,但诸将不同意,主张先攻河东。李渊想采纳薛大鼎之议,舍河东而先渡河进取长安,但裴寂又不同意。
此时就周边态势而言,洛阳以东,有李密,并拥有洛口仓和黎阳仓两大粮仓,在天下群雄中,声势最盛;洛阳东北,又有窦建德雄踞河北,也是群雄中较强的一方势力。李渊即使占领洛阳,仍处于四面受敌之态,难以固守,而且容易招惹各方势力,成为众矢之的。
与洛阳相比,长安坐在的关中与群雄鏖战正酣的中原之间有潼关相阻。如果占据潼关,可以避免过早与李密、窦建德等势力发生冲突,而且割据陇右的薛举和割据陕北的梁师都相对势力较小,易于逐个翦灭,有利于一边巩固,一边发展。
经过一番分析可以发现,进攻潼关这一战可以说对李渊至关重要。
正因如此,李渊也力求稳妥,于是分别采纳了两派的意见,自己率大军西入关中,留下一部分军队围攻河东,接应河西军。这样,即使入关失利,也不至于被屈突通斩断归路,受到腹背夹击。
九月十二日,李渊率领主力部队渡黄河,挺进关中。十六日李渊到达朝邑,住进长春宫。十八日派李建成、刘文静驻永丰仓扼守潼关,负责抵御东边过来的敌军;派李世民率领刘弘基等诸军几万人进攻渭水以北地区。
屈突通得知李渊西进的消息后,留下鹰扬郎将尧君素驻守河东城,自己带领数万精兵回救长安。此时,蒲坂津西岸已经被李渊军控制,屈突通只好在潼关附近渡河西进,但由于受到刘文静部阻遏,只得在潼关与其对峙。
九月二十一日,李渊到蒲津,第二天从临晋渡过渭水,到潼关慰劳军队,并开永丰仓赈救饥民,二十三日又返回长春宫。李渊亲临潼关的目的很明显,意在争取民众,鼓舞驻扎在潼关将士的斗志。
面对屈突通,李建成、刘文静在潼关与其相持了一个多月。不过在潼关相持跟在河东相持不同,在河东相持,屈突通不急,能够拖住李渊军就是成功。但在这里,李军身后就是永丰仓,有的是粮食吃,而且一旦李渊攻下长安,屈突通将遭到重兵围剿不说,失去了杨侑,屈突通就是彻底的失败。
无奈之下屈突通只得选择了进攻,于是派出了桑显和偷袭李军,恰巧李建成亲自外出巡逻,李军大营被偷袭之后,损失惨重,留守的刘文静本人也被流矢射伤。可就在这生死攸关的时刻,李建成归来,并率领了区区几百人的骑兵直扑了过来,打的隋军措手不及。见此情形,刘文静也从营寨中冲出,两面夹击下,隋军大败,桑显和只身一人逃回了潼关。此后,屈突通只得困守潼关,最终被生擒。
屈突通所统帅的“骁果”军,是隋炀帝大业九年(613 年)组建的新军,为隋军精锐。李渊起兵后,屈突通领数万骁果军据守河东,始终被李渊集团视为劲敌,屈突通降唐,对唐军实力是一个有力的补充。此后,屈突通随李世民东征,成为唐军进攻洛阳的主力部队。