隋炀帝大业年间围绕封爵勋官制度而推行的政治改革,势在打破北周宇文泰以来实施的“关中本位政策”,通过限制、削弱关陇集团的强大势力和影响,以整饬吏政,加强中央集权,扩大统治的社会基础。但其政治改革的方案未尽成熟及过急的推进,未能与建立民生顺遂、团结安定的政治局面相结合起来,最终爆发严重的统治危机。
由于军阀割据四方,民不聊生,下层百姓纷纷起而反抗,农民战争遍布全国。在反隋斗争中,各地起义军逐渐汇集成翟让、李密领导的瓦岗军,窦建德领导的河北起义军和杜伏威领导的江淮起义军。三大反隋主力转战中原、河北和江淮地区,极大地动摇了隋朝统治基础,造成了隋王朝总体崩溃形势。在这种形势下,统治阶级内部逐渐形成策划起兵的新动向,分崩离析,各自寻谋出路。
隋大业十一年(615年),隋炀帝任命唐国公李渊为河东宣慰大使,留守太原,赴山西镇压农民起义。李渊升任太原留守以后,一些山东世族子弟为逃避征辽东兵役,纷纷投靠李渊,河东地方官吏中一些人看到隋朝大势已去,也和隋朝统治者同床异梦,这些人不断向李渊劝进起兵,建立新王朝。李渊次子李世民是太原起兵的主要策划者,晋阳县令刘文静向李世民分析当时的形势说:“现在炀帝远在江淮,李密围攻洛阳,各地起义军不下数万,在这种形势下如果有人起来倡呼,取天下易如反掌。太原有许多豪杰,可以集兵10万,加你所带的数万军队,乘虚进入关中,号令天下,就可以成就帝业。”
于是李世民秘密做起兵准备。李渊与突厥作战失败,隋炀帝准备把他召到江都(今江苏扬州市)治罪,李世民乘机劝说李渊起兵:“现在隋炀帝无道,百姓困穷,太原城外已是四战之地,如果你只知道效忠隋朝,那么既有不能平定农民起义之忧,又有被隋炀帝治罪之惧,恐怕要祸及自身了。不如顺民心,兴义兵,就能够转祸为福。”裴寂、许世绪、武士彟等纷纷劝李渊起兵,李渊终于下定了反隋的决心。
隋大业十三年(617年)六月,李渊命刘文静假造隋炀帝诏书,伪称要征发太原、西河(今山西汾阳县)、雁门(今山西代县北)等地20至50岁男子,集合到涿郡(今河北涿州市),东征高丽,搞得人心慌恐,更加剧了反抗隋朝的情绪。
李渊派李世民、刘文静、长孙顺德、刘弘基等人到各地募兵,招集到一万余人。太原副留守王威和高君雅看到李渊招兵买马,准备告发,先杀李渊。李渊、李世民则先发制人,伪称王威、高君雅引突厥兵入寇,在晋阳宫杀死这二人,史称“晋阳事变”。晋阳事变是李渊集团公开起兵的开始,然后北联突厥贵族势力,依靠关陇、河东地主集团的力量,宣称尊炀帝为太上皇,拥立镇守长安的代王杨侑为帝,传檄郡县,起兵晋阳。
西河郡隋将得知李渊起兵的消息,在城内拒守。李渊派李建成、李世民率兵攻打西河,并派太原令温大有参谋军事。西河郡兵微将寡,郡丞高德儒闭门守城。李世民身先士卒,与士兵同甘共苦,军队秋毫无犯,士民非常高兴。李建成仅仅用了9天时间便攻下西河,杀死高德儒。李渊命令开仓赈饥,招募士兵,把军队分为三军,李渊为大将军,李建成封陇西公、左领军大都督,统领左三军,李世民封敦煌公、右领军大都督,统领右三军,将军府、都督府各置官属,统成了强有力的军事机构,力量更加壮大。
七月,李渊命李元吉留守太原,亲自率军3万,在西突厥兵协助下,向长安进发。
隋大业十三年(617年)六月,李渊自太原出兵。长安代王杨侑派虎牙郎将宋老生、骁卫大将军屈突通抵御李渊。李渊南下逼进霍邑(今山西霍县),正赶上连雨,军队缺乏粮食,李渊、裴寂准备返回太原,李世民哭谏,他说:“现在正是收获季节,田野到处都是菽谷,何必担心粮食不够?如果遇到抵抗就班师撤兵,恐怕将士解体,大势已去。”李建成支持李世民的主张,也反对退回太原,李渊才同意与隋军在霍邑交战。
战斗开始之前,李渊、李建成在城东列阵,李世民在城南列阵,太原兵初战不利,李世民从城南率骑兵直冲隋将宋老生阵,从背后夹击隋军。李渊与李世民合击,隋军腹背受敌,遭到惨败,宋老生被杀,霍邑被攻克。随后李渊相继攻克临汾郡和绛郡(今山西新绛县),进逼龙门(今山西河津县西北),关中势力大的一支武装孙华和冯翊(今陕西大荔县)太守萧造投降李渊。
八月,在霍邑之战大捷后,乘隋军主力在洛阳附近与瓦岗军大战之机,即沿汾水(今汾河)挺进,连下临汾、绛郡(治今山西临汾南、新绛),进至龙门(今河津东南)。隋左武侯大将军屈突通领兵数万屯河东(今永济西南),阻挡李渊军。
此时司马刘文静引突厥大将康鞘利所率兵500、马匹2000赶至,使李渊实力大增。关中起义军首领孙华率兵响应。李渊遂遣左右统军王长谐、刘弘基及左领军长史陈演寿等率步骑6000自梁山(今陕西韩城境)渡河,营于黄河西岸,以待大军。
九月,李渊率军围河东,不克。遂采纳次子李世民与裴寂等建议,留诸将围河东,自引军而西。隋朝诸县多请降。
李渊率军渡黄河,进驻朝邑(今大荔东南)并遣长子李建成率领刘文静、王长谐等诸军数万人,进屯永丰仓,扼守潼关,以阻隋军西援;遣李世民率领刘弘基等诸军数万人,沿渭水北岸经高陵(今属陕西)迂回长安。屈突通获悉李渊军西入,遂留鹰扬郎将尧君素守城,自领数万人援长安,被刘文静等阻于潼关。
李世民所部得到平阳公主等李氏家族及农民起义武装的接应,顺利抵达泾阳(今属陕西)。李渊遂命刘弘基、慰抚使殷开山率兵一部南渡渭水,夺取长安故城(今西安西北)。李世民引兵赴司竹园(今周至东南),使新附的地方武装李仲文、何潘仁等部屯于阿城(即阿房宫故址,今西安西南),其兵力发展到13万人。李世民自盩厔(今周至)遣使请李渊期日赴长安。李渊料定屈突通不能西援,遂命李建成选精兵,经新丰(今临潼东北),直抵长乐宫;李世民率新附诸军回屯长安故城;李渊自冯翊(今大荔)率军经下邽、栎阳(今渭南北、临潼北)西进。十月初四,李渊至长安,营于城东。此时诸军皆集,合兵20余万。隋京师留守、刑部尚书卫文升、左翊卫将军阴世师等奉代王杨侑据守长安城。李渊遣使告谕不应,遂于十四日下令围城。二十七日命令攻城。
李渊军围长安后,并不急于攻城,而是严申军令:士兵不得擅自离营,不得入附近村落抢掠。同时派人至城下,向城中守将申诉尊隋之意,即希望长安守军能弃暗投明,以免因用兵而双方遭受伤亡,但对李渊的好意,守城军置若罔闻。不得已,李渊命诸军攻城。并与部下相约“毋得犯七庙及代王、宗室,违者夷三族!”
十一月,李渊汇合李建成、李世民、刘弘基之兵20余万攻打长安,军头雷永吉率先登上城头,京城长安被攻克。
十一月初九,李建成部将雷永吉等先登入城,诸军相继到达,攻克了长安。李渊在长安迎立代王杨侑为傀儡皇帝,自任使持节、大都督内外诸军事、尚书令、大丞相,加封唐王,与民约法12条,得到了关中地主阶级的支持和拥护。
李渊从太原起兵到攻克长安,只有短短的五个月时间。总的形势是隋末农民战争打垮了隋朝统治,牵制了隋军大量兵力,使隋朝统治集团无力西顾,关中空虚,不能和新兴的李渊集团抗衡,这是总的战略形势决定的。
在攻取长安的过程中,李渊父子运用战术巧妙,如与关东李密联合,拖住隋军无暇西顾,入关后立即屯兵潼关,阻住了隋朝援军。
具体战术运用方面当机立断,不失时机,如在攻打河东与进军长安时双管齐下,收效显著。事实证明,这种部署是成功的,长安失陷以后,屈突通看到隋朝大势已去,开城投降了李渊。李渊进军途中秋毫无犯,得到了关中地主阶级支持,减少了阻力,因而能够迅速攻占长安,奠定了兴唐基础。
占领长安后的次年五月,李渊篡隋,自立为帝,定国号为唐,隋朝灭亡。降隋恭帝为酅国公,闲居长安,次年五月去世。李渊就是唐高祖。改元武德,都城仍定在长安。而后,长子李建成被封为太子,次子李世民为秦王,三子李玄霸早夭,四子李元吉为齐王。唐朝建立后,李渊派李世民征讨四方,剿灭各方群雄(参见唐朝统一战争)。