炀帝大业十三年(恭帝义宁元年)七月壬子,李渊以四子元吉为太原留守,委以后事。第二天,李渊自率甲士三万誓师,由晋阳出发,沿着汾河谷道南下河东。表面上打着“志在尊隋”的旗号,宣布尊立代王为帝。始毕派人送马千匹,驻在楼烦的突厥阿史那大奈也率兵相助。渊军行至贾胡堡(今山西灵石西南),代王侑(炀帝孙)派遣虎牙郎将宋老生率精兵两万屯霍邑(今属山西),左武候大将军屈突通将骁果数万屯河东,阻击渊军南下。这时正值秋雨连绵,道途泥泞,渊军不得前进,军粮也感匮乏。外间还谣传突厥将与刘武周乘虚掩袭晋阳,因刘文静出使突厥未归,不知虚实。李渊召集将佐商议对策。裴寂等主张“还救根本,更图后举”。建成、世民则力主进军。他们认为:“武周位极而志满,突厥少信而贪利,外虽相附,内实相猜。突厥必欲远利太原,宁肯近忘马邑。武周悉其此势,未必同谋。” 再者,“今来禾菽蔽野,人马无忧,坐足有粮,行即得众。李密恋于仓粟,未遑远略;老生轻躁,破之不疑。定业取威,在兹一决。”李渊经过慎重考虑,终于作出了继续进军的决定。八月己卯,雨止天晴,军粮也从太原运来了,李渊便率军进攻霍邑。先以轻骑挑战,宋老生统兵三万由东门、南门出而迎战,渊兵少却,宋老生以为李渊畏惧,引兵前进,离城里余而阵。殷开山率步兵抵挡宋老生,建成、世民绕向宋老生阵后,分别屯守东门和南门,断其归路。正当双方激战的时候,李渊派人高呼“已斩宋老生”。宋老生部众听了,阵势大乱,纷纷往回逃走,渊兵所向奋击,打得敌军“血流蔽地,僵尸相枕”,宋老生也被杀死了。李渊乘胜挥兵登城,攻克霍邑。进军临汾(今山西临汾南),克绛郡(今山西新绛),直抵龙门县(今山西河津)。这时刘文静从突厥赶到,同来的还有突厥大将康鞘利所带的兵士五百、马匹二千。沿河守臣也纷纷来降。李渊以书招降冯翊农民军首领孙华。及渊进军壶口(今山西吉县西南黄河畔),孙华渡河来见,渊以孙华为左光禄大夫、武乡县公,领冯翊太守,赏赐甚厚,仍使回河西接应。又遣左右统军王长谐、刘弘基及左领军长史陈演寿等将步骑六千,自梁山渡河,以待大军。李渊自率诸军围河东,屈突通婴城固守。渊见城坚不易攻取,意欲引兵西往长安,与将佐商议。裴寂说:“屈突通拥大众,凭坚城,吾舍之而去,若进攻长安不克,退为河东所踵,腹背受敌,此危道也。不若先克河东,然后西上。长安恃通为援,通败,长安必破矣。”李世民则持相反意见,他说:“兵贵神速,吾席累胜之威,抚归顺之众,鼓行而西,长安之人望风震骇,智不及谋,勇不及断,取之若振槁叶耳。若淹留自弊于坚城之下,彼得成谋修备以待我,坐费日月,众心离沮,则大事去矣。且关中蜂起之将,未有所属,不可不早招怀也。屈突通自守虏耳,不足为虑。”李渊综合两种意见,扬长避短,决定留兵围困河东,自统主力军西进。遂自壶口渡河,舍于朝邑长春宫(在今陕西大荔朝邑镇西北),“关中士民归之者如市”。李渊分军两路,命李建成、刘文静率王长谐等数万人屯永丰仓(今陕西华阴东北),扼守潼关,以备东方援敌;命李世民率刘弘基等数万人,掠取渭水北岸之地,对长安采取钳形攻势。

李渊在关中的亲属,听到渊军到来的消息,纷纷响应。他的女儿(柴绍之妻,开国后封为平阳公主)在鄠县(今陕西户县)别墅散家财,招集南山亡命,得数百人。又遣家人马三宝说降邻近的何潘仁、李仲文、向善志、丘师利等部,众至数千。李渊的从弟李神通也在鄠县起兵,众至数千。李渊的女婿段纶在蓝田起兵,有众万余。其中平阳公主的势力最大,招集诸部攻下盩厔(今陕西周至)、武功(今陕西武功西北)、始平(今陕西兴平)等县,众至七万人,号称“娘子军”。李世民一路西进,所到之处,“吏民及群盗归之如流”。及至泾阳(今属陕西),胜兵九万,与“娘子军”相会,声势大张。李渊乃命建成率永丰仓精兵,自新丰西进长乐宫,世民回师北屯长安故城。李渊引军西行,“所过离宫园苑皆罢之,出宫女还其亲属”。十月辛巳,渊至长安,驻营春明门(长安城东面三门之一)外。合军二十余万,大修战具,围攻京城。十一月丙辰,发起攻势,一时“云梯竞耸,楼橦争高,百道齐来,千里并进”。军头雷永吉等先登,守军溃散,遂克长安。李渊入城,迎代王侑于东宫,迁居大兴殿后。渊还居长乐宫,“与民约法十二条,悉除隋苛禁”。杀隋大臣右翊卫将军阴世师、京兆郡丞骨仪等,余无所问。于是文武将佐请李渊即帝位,李渊不听,仍在观望和等待时机。王戌,迎立十三岁的代王杨侑为帝,改元义宁,遥尊炀帝为太上皇。甲子,渊自长乐宫入长安。隋恭帝授渊假黄钺、使持节、大都督内外诸军事、大丞相、录尚书事,进封唐王。以武德殿为丞相府,改教称令,视事于虔化门(在大兴殿前东偏)。“诏军国机务,事无大小,文武设官,任无贵贱,宪章赏罚,咸归相府”。置丞相官属,以裴寂为长史,刘文静为司马,李纲为司录。李建成为唐国世子,世民为京兆尹、秦国公,元吉为齐国公。

义宁二年(618)三月,隋炀帝在江都为宇文化及等所杀,消息传到长安,隋恭帝被迫让位,李渊便在文武官吏一片劝进声中,于五月甲子正式做了皇帝,国号唐,改元武德,是为唐高祖。以世子建成为皇太子,世民为秦王,元吉为齐王。其余官属,自相国府长史裴寂以下,均进位有差。李渊从晋阳起兵到长安称帝,正好费了一年的时间。