而李世民则身先士卒,与士兵同甘共苦,他所属的军队也秋毫无犯,郡内大户非常高兴。他和李建成一起,仅仅用了九天时间便攻下西河郡,杀死了高德儒。
李渊随即命令开仓赈饥,招募士兵,并将军队分为三军。
他自己为大将军,总揽一切军事。
封李建成为陇西公、左领军大都督,统领左三军。
封李世民为敦煌公、右领军大都督,统领右三军。
将军府和都督府均各置官属,形成了强有力的军事幕僚机构,各地贤士纷纷来投,力量更加壮大。
五月,李渊亲自率军三万,在裴寂请来的西突厥兵协助下,向长安进发。驻守长安的杨广之孙——代王杨侑便派虎牙郎将宋老生和骁卫大将军屈突通抵御李渊。
李渊南下逼进到霍邑(今山西霍县)之时,正赶上连绵梅雨,军队被宋老生挡在关隘外无法寸进。且由于军中人数增中太多,粮食缺乏。李渊便和裴寂商量,准备返回太原。
这时,李世民便找到李渊哭谏道:“父亲大人,现在正是春粮收获季节,田野到处都是麦谷,何必担心粮食不够?如果我们一遇到顽强的抵抗,就立刻班师撤兵,恐会让投靠我们的将士失望,此消彼长之下,我军将大势去矣。”
而李建成也支持李世民的主张,反对退回太原。
李渊反复斟酌了一阵,又与刘文静商义之后,方同意与隋军在霍邑交战。
在战斗开始之前,李渊在西北列阵,李建成在城东列阵,李世民在城南列阵,宋老生领军出战,取得了一定优势。
但李世民却从城南率骑兵直冲隋将宋老生主阵,从背后夹击隋军。李渊与李世民合击,隋军腹背受敌,遭到惨败。宋老生被杀,霍邑也被攻克。
随后李渊相继攻克临汾郡和绛郡(今山西新绛县),进逼龙门(今山西河津县西北),关中势力最大的一支武装孙华和冯翊(今陕西大荔县)太守萧造投降了李渊。
六月,李渊率兵围攻河东郡(今山西永济县),隋朝名将之一的屈突通领兵固守,导致李渊久攻不克。
上时,裴寂认为应不惜任何代价攻下河东郡,然后再进入关中,以免后路被屈突通截断。
但李世民则认为兵贵神速,应该直捣关中,以免关中被薜举或梁师都袭占。
而在李渊看来,这两种意见都有道理,如果不消灭屈突通而直接入关,那么前面有长安隋军,后面有屈突通援兵,自己会腹背受敌。
如果一直用老师疲兵围攻河东郡,关中隋军就有充分时间组织抵抗,甚至会得到来自东都的支援,失去战机。
李渊权衡了两种意见之后,决定各取其长。
他于是分兵两路,留下李神通和李孝恭围攻河东,牵制屈突通。而自己则率领李建成、李世民大军直接攻取长安。
李渊率军从壶口渡过黄河,攻取了潼关,然后留李建成扼守潼关,阻挡关东隋军来援。而李世民则从渭北进入三辅,横扫关中各地。
由于李阀在关中颇有声望,关陇地方豪强纷纷投降李渊,关中的局势迅速一边倒。
七月,李渊汇合李建成、李世民、刘弘基之兵二十余万攻打长安。并下令军中士兵不许侵犯隋朝七庙和代王宗室,违令者夷其三族。
然后,在一阵号角声中,李渊宣布进攻长安,第一个上城墙者提拔为亚将,城中隋军这时兵微将寡,早已人心惶惶,无力抵抗。李渊军的队正侯君集率先登上城头,西京长安被攻克。
李渊于是便在长安迎立代王杨侑为傀儡皇帝,自任使持节、大都督内外诸军事、尚书令、大丞相,加封唐王,并仿当年刘邦入关中,约法三章之例,也与关中百姓约法十二条,得到了关中民众和关陇门阀的支持和拥护。
同一时期,山东的王簿和徐圆朗两人,也占领了山东大部分郡县,只有北海郡尚在隋军手中。
河北的窦建德也摧城拔寨,占领了除北平郡和涿郡之外的河北大部,大有席卷整个黄河以北之势。占据马邑的刘武周亦是连克定襄、楼烦、雁门、榆林四郡,控制了整个河东北部地区,并开始和李渊军发生交战。由于初战失利,他便也学李渊一般,表示愿意效忠突厥。而此时突厥内部处罗可汗已经战败身死。演变成颉利和突利的混战。颉利也巴不得有人投靠自己,以壮大声势。因此,对于前来投靠的刘武周,他也大大方方地封为定扬小可汗,并向其提供了一批战马。一时之间,在河东地区,刘武周和李渊倒是斗了个旗鼓相当。