后,便以进军关中拿下长安为最终目标。西进的第一个障碍便是西河郡今山西汾阳县。李建成和李世民兄弟俩仅用了九天便得胜而归,使得李渊喜出望外。
然后,李渊建立了自己的基本的军事和政权机构:设置大将军府,自称大将军,长子李建成为陇西公、左领军大都督,统领左三军李世民为敦煌公、右领军大都督,统领右三军裴寂和刘文静为长史司马。
第二战是决战霍邑今山西霍县。在霍邑的西北有个贾胡堡,是霍邑的门户,但守卫霍邑的宋老生却没有派兵把守,李渊由此断定宋老生是个无能之辈。
李渊害怕宋老生守城不出,打成持久战对自己不利。李世民却认为可以挑战引他出来决战。于是李渊让两个儿子领几十名骑兵进城观察,自己将部队分成十几队,从城东南到西南,摆出一副安营攻城的架势。宋老生果然中计,以为李渊要攻城,便领兵三万出战。李渊领兵假装后退,让李建成和李世民领兵抢占了东门和南门,切断了宋老生的退路。在交战中李渊又散布宋老生已经战死的谣言,动摇了隋军的军心。隋军大败,全军覆灭。宋老生也在被守军用绳子往城墙上提时,被李渊的军头卢军谔跳起杀死。李渊顺利占领了霍邑。
此后,李渊又攻打河东,没有攻下。李渊听从了李世民直接入关中的建议,分兵攻长安。等围攻长安成功建立唐朝之后,又继续围困,到620年唐高祖武德三年农历正月才最终占领河东。
在招降长安失败后,李渊下令攻城,占领之后又下令禁止掳掠百姓,受到百姓们夹道欢迎。在617年隋大业十三年的农历十一月,李渊拥立隋代王杨侑为帝,即隋恭帝,改元义宁,尊在江都今
李渊称帝(5/6)