首战西河
晋阳的南面是西河郡,郡丞高德儒很不识时务,当李渊行军至该郡的时候,竟表示不服从,于是,李渊命李建成、李世民率众取之。取西河,是李氏父子晋阳起兵后第一战,胜败关系到李唐王朝的帝业,因而十分重视。临行前,李渊对太原令温大有说:“我儿子年轻,请您参与谋划军事,事情的成败,在此行就可预测出来了。”起义部队的士兵都是新近招募的,没有经过训练检阅。李建成、李世民与士兵同甘共苦,遇到敌人身先士卒。附近道旁的蔬菜瓜果,不是买的不准吃,兵士有偷吃的,立即找物主给予赔偿,也不责备偷窃者,士兵及百姓们对李氏兄弟都心悦诚服。义军到达西河城下,高德儒闭城拒守,但很快就被攻破。抓住高德儒后,李世民历数其罪过,说:“你指野鸟为凤凰来欺骗君主,骗取高官,我们兴义兵,正是要诛灭奸佞之人。”随后,将高德儒处死,其余官员一个不杀,秋毫无犯,并分别抚慰吏民百姓,让他们各复其业,远近的百姓听到后非常高兴。西河首捷,往返仅九天,李渊高兴地说:“像这样用兵,就是横行天下也可以了。”于是就订下了直取长安的计划。此役后,设置大将军府,分为三军。封李建成为陇西公,左领军大都督,指挥左三军。封李世民为敦煌公,右领军大都督,指挥右三军。任命裴寂为长史,刘文静为司马,唐俭和温大雅为记室,温大雅有参与机密,长孙顺德和刘弘基等为统军。形成了取天下的军事,政治机构。
再战霍邑
大业十三年(617年)七月,李渊誓师于野,留四子元吉守太原,亲自率领建成、世民共三万人马南下。隋朝虎牙郎将宋老生驻霍邑,他以精兵两万阻挡义师前进。这时,雨下了很长时间还不停,军队缺粮,又流言突厥乘虚侵袭太原,李渊召集将领僚佐们商议向北返回。裴寂等人都说:“宋老生和屈突通联合居守险要,不容易很快攻下……太原为一方的都会,而且义兵的家属都在太原,不如返回救援根本之地,再筹划今后的义举。”李渊同意此议,而李世民反对说:“现在稻谷遍野都是,还愁无粮吗?宋老生为人轻狂浮躁,一战就可以擒住他。李密舍不得粮仓粟米,顾不上向远方图谋。刘武周和突厥人表面上虽然相互依赖,但实际上却互相猜忌。刘武周虽然追逐远利而攻取太原,但岂肯忘记就近的马邑呢?我们本来是兴大义,奋不顾身地拯救百姓,应当先行进入咸阳,号令天下。现在只遇到了小敌,立刻就要回师,恐怕跟随起义的人一旦解体,返回去守卫太原一城之地,我们就成贼了,怎么能保全自己呢?”李建成也认为李世民的意见正确,但李渊不听,催促军队出发。李世民再要进入李渊的营帐劝阻,天黑了,李渊已经躺下休息。李世民进不去,就在帐外号哭,哭声传到帐中,李渊召见世民问话,世民说:“如今我们举兵是为大义,进军攻战就能取胜,后退就会溃散,到那时,部众溃散在前,敌军追击在后,我们被灭亡的日子就到了,怎么能不悲伤呢?”李渊醒悟过来,说:“军队已经出发,我们怎么办呢?”李世民说:“右军整装而未发,左军虽然出发,估计还没走远,请让我去追赶他们。”李渊笑道:“我的成败都在于你,知道了还说什么呢?随你去做吧。”李世民和李建成连夜把左军追了回来。过了几天,太原的粮食也运到了。
到了八月初,雨停了。李渊命令部队晾晒铠甲、器械、行装。初三早晨,李渊率军从山脚下的小路向东南直抵霍邑。李渊怕宋老生不出战,李建成、李世民说:“宋老生有勇无谋,我们用轻骑向他挑战,按理他不会不出战,待他从营垒出来,我们就诬陷他有二心,他害怕被左右的人奏报,怎敢不出战呢?”李渊和几百名骑兵先到霍邑城东面几里的地方等待步兵,派李建成、李世民率领几十骑到城下,举鞭挥旗就像要包围城池的样子,并且辱骂宋老生。宋老生大怒,率三万人从东门,南门分道出战。李渊派殷开山立刻去召集后军,后军来到后,李渊想让军士们先吃饭再战斗,李世民说:“机不可失!”李渊就和李建成在城东列阵,李世民在城南列阵。李渊,李建成与宋老生交战,稍有退却,李世民与军头临淄人段志玄从南原率兵驰马而下,冲击宋老生的军阵,出击宋老生军的背后。李世民亲手杀死几十人,两把刀都砍缺了口,飞溅的鲜血沾满衣袖,李世民将血甩掉再战。李渊的兵势顿时振奋起来,就传话呼喊:“已经抓住宋老生了!”宋老生军因此而大败。李渊的兵士迅速直抵城门,城门关闭了。宋老生下马跳入壕沟,刘弘基就地将他杀死。隋军的死尸遍布几里。天黑了,李渊命令登城,由于当时没有攻城的器械,将士们赤膊登城,攻下霍邑。
兵围河东
平霍邑后,又接连攻取临汾郡和绛郡。到了八月十八日,李渊到达龙门。九月,义师包围河东。河东是战略要地,宛如关中之门户。隋朝骁卫大将军屈突通闭城拒守,攻之不克。这时发生了军事策略上的第二次分歧。裴寂主张:“屈突通拥有大批军队,凭借着坚固的城池,我们若舍弃他而去,要是进攻长安而不能攻克,后退就会遇到河东方面的追击,腹背受敌,这是危险的策略。不如先攻下河东,然后挥师西上。长安是依恃屈突通为后援的,屈突通被打败,长安也必定被攻破。”李世民说:“不对!兵贵神速,我们乘着屡战屡胜的军威,安抚归顺的民众,大张旗鼓地西进,长安的人就会望风而震惊骇惧,他们智谋还来不及谋划,勇敢还来不及决断,取长安就如同震动树上的枯叶一样容易。我们要是滞留,自己将自己耽误在坚城之下,他们则有时间加强防备以对付我们,而我们就白白浪费了时间,大家的心就会沮丧溃散,那么大事就全完了。况且关中蜂拥而起的将领还没有归属,不能不早些将他们招抚来。屈突通是自己将自己囚禁起来,不足为虑。”两种意见各有各的道理。李渊采取“两从之”的办法,分兵两路,大军渡河入关,重点攻取长安,同时留相当兵力对付屈突通。
直取长安
李渊父子率主力部队渡河后,建成和刘文静等屯守永丰仓和潼关,防备来自东面的敌兵;李世民率统军刘弘基,长孙顺德等数万人定渭北,包括泾阳,云阳,武功,诸县。自谓北徇三辅,李世民所至皆下,甚得人心。《旧唐书·太宗本纪》载:“三辅吏民及诸豪猾诣军门各效者,日以数千,扶老携幼,满于麾下。收纳英俊,以备僚列,远近闻者,咸自托焉。”例如,阝显城尉房玄龄杖策在军中拜见,李世民一见,便像见了故人一样合得来,任命他为记室考军,引为谋主。房玄龄也自以为遇见了知己,竭尽全力,知无不为。不久,刘弘基等南渡渭水,驻屯长安故城。李世民则引兵赴司竹园,收编了李仲文、何潘仁、向善志等所率徒众,驻扎在原秦阿房宫城,号称胜兵十三万。
接着,李世民派人报告李渊,请即赴长安。李渊表示同意,命建成率精兵赴长乐宫,世民率新附诸军北屯长安故城。十月,李渊到达长安,设营于春明门之西北。京城被二十万大军围困,到十一月,终于攻克。
随即,李渊立隋代王侑为皇帝,即隋恭帝,改元为隋义宁元年(617年)。李渊为假黄钺,使持节,大都督内外诸军事,尚书令,大丞相,进封唐王,以武德殿为丞相府,独揽军国机务。以建成为世子,世民为京兆尹,秦公,元吉为齐公;以裴寂为丞相府长史,刘文静为司马。义宁二年(618年)三月,李世民改封赵公。五月,隋恭帝禅位,李渊即皇帝位于太极殿,国号唐,改元武德,都长安。武德元年(618年)六月,李世民为尚书令,裴寂为右仆射,知政事,刘文静为纳言。不久,立建成为皇太子,世民为秦王,元吉为齐王。由于秦王李世民参与“首义”,军功显赫,故在新王朝里占据重要的地位。