李淵占領(lǐng)長安的同時,各地起義軍也不斷發(fā)展壯大。除了瓦崗軍之外,主要的還有竇建德領(lǐng)導的河北起義軍和杜伏威領(lǐng)導的江淮起義軍,不斷在各地打擊隋軍。殘暴荒淫的隋煬帝自己知道末日來到,索性躲到江都,每天和皇后、妃子喝酒作樂,醉得昏昏沉沉。
他不愿聽到失敗的消息,但是心里到底發(fā)慌,對蕭皇后說:“聽說外面有不少人想算計我,且別管他,還是快快活活喝酒吧。”
有一次,他拿起一面鏡子,呆呆地照了半晌,說:“好頭顱,不知道誰來砍它呢!”
隋煬帝擔心的日子終于到來了。他身邊的一批禁衛(wèi)軍兵士,多數(shù)是關(guān)中地區(qū)的人。他們眼看跟著隋煬帝沒有生路,都想開小差回家。將軍宇文化及利用兵士想回家的心理,發(fā)動兵變。宇文化及帶領(lǐng)兵士,攻進行宮,派人把隋煬帝監(jiān)視起來。
隋煬帝對監(jiān)視的官員說:“我犯的什么罪?”
官員說:“你發(fā)動戰(zhàn)爭,窮奢極侈;相信奸邪,拒絕忠告;使男子死在戰(zhàn)場,婦女兒童走上絕路,百姓流離失所,你還說沒罪嗎?”
隋煬帝說:“我確實對不起百姓,但是你們這些人也跟著我享受富貴,沒對不起你們。今天這樣做,是誰帶的頭?”
官員說:“全國的人都恨透你這昏君,哪兒是一個人帶的頭!
隋煬帝這才無話可說,他自己解下巾帶交給官員。這個作惡多端的統(tǒng)治者就這樣被勒死了。統(tǒng)治中國三十八年的隋王朝宣告滅亡。
隋煬帝死后,東都洛陽還在隋朝的東都留守楊侗(煬帝的孫子)和大臣王世充手里。王世充把楊侗立為皇帝,繼續(xù)打著隋朝的旗號,對抗起義軍。
東都周圍本來是瓦崗起義軍活動的地區(qū),李密曾經(jīng)多次打敗隋軍,但是因為李密驕傲自滿,跟將領(lǐng)們互相猜忌,在跟北上的宇文化及人馬打了一仗之后,力量漸漸削弱。王世充看準李密的弱點,發(fā)起一次襲擊,打垮了李密大軍。李密帶著殘兵敗將,逃到長安去投靠唐朝了。
王世充趕跑了李密,自以為力量強大,把楊侗廢了,自立為帝,國號叫鄭。
這時候,唐軍已經(jīng)削平了西北的幾個豪強割據(jù)勢力,穩(wěn)定了后方。公元620年,唐高祖派李世民統(tǒng)率大軍進攻東都。李世民大軍一出關(guān),河南許多州縣紛紛投降,很快就把東都包圍起來。
李世民不但善于打仗,而且善于用人。他從原瓦崗軍和別的割據(jù)勢力的降將中,收留了一批人,象有名的秦叔寶、程咬金、尉遲敬德(尉遲是姓,尉音yù),都成了他的得力助手。
有一次,李世民親自帶了五百騎兵在陣地上巡視,被王世充發(fā)現(xiàn),發(fā)動一萬多步兵騎兵突然圍上來,鄭軍大將單雄信沖到李世民身邊,用長矛直刺過來。李世民后面的尉遲敬德飛馬趕上,大喝一聲,把單雄信刺下馬來。尉遲敬德保護李世民突出包圍,兩個人又帶著騎兵轉(zhuǎn)過身在鄭軍陣地來回沖殺,嚇得鄭兵不敢阻擋。接著,后面的唐軍源源不絕地上來,把鄭軍打得一敗涂地。
從這年秋天一直到第二年春天,唐軍把東都越圍越緊,日夜不停地攻城。王世充在城里嚴密防守,不斷用石炮、弩箭襲擊城外唐軍。日子一久,唐軍將士也感到疲勞,有人向李世民建議暫時停止進攻,回長安休整后再打。
李世民說:“現(xiàn)在四周各州都已經(jīng)投降,洛陽成了一座孤城,遲早可以攻下,怎么能半途停下來。”接著就向?qū)⑹堪l(fā)出命令說:“不攻下東都,決不退兵。”
王世充被逼得走投無路,只好派人偷偷地出城,趕到河北向竇建德求救。
竇建德領(lǐng)導的起義軍是河北一支強大的力量。王世充自稱鄭帝以后,竇建德也自稱皇帝,國號叫夏,攻占了唐軍許多土地。他接到王世充的求救信,一面帶領(lǐng)三十萬人馬,水陸并進,援救東都;一面派出使者給李世民送去一封信,要李世民退回關(guān)中。
唐軍許多將領(lǐng)都被夏軍的強大兵力嚇得害怕了,主張暫時離開東都。但是有人認為王世充兵力還很強,缺少的是糧食。如果讓竇建德跟王世充兩軍會合,用河北的糧食接濟東都,那末勝利就沒有希望了。所以,一定要把南下的竇建德大軍堵住。
李世民接受了這個意見,把李元吉留在東都繼續(xù)圍攻王世充,自己帶三千多精兵北上,扼守武牢關(guān)(就是虎牢關(guān),在今河南榮陽汜水鎮(zhèn))。
竇建德大軍到了武牢關(guān),被唐兵攔住,夏軍發(fā)起幾次進攻都沒成功,李世民卻派輕騎兵抄小路,把夏軍的糧道切斷了。
竇建德認為自己兵力強大,,不怕攻不下武牢關(guān)。他拒絕了他部下和妻子的勸阻,命令全軍出動,擺開陣勢,鼓噪著沖了過來。
李世民上高地觀察了夏軍的陣勢,說:“竇建德沒有遇到過強大的敵手,從他的陣勢,就可以看出他驕傲輕敵。我們只要按兵不動,等待他們兵士疲勞的時候,一舉出擊,一定能打敗他們。”
夏軍兵士擺開陣勢,準備交鋒。但是,從早上到中午,還沒有見唐軍出來交戰(zhàn),兵士們又疲勞,又饑餓,有的坐在地上,有的到河灘上舀水喝。李世民一見時機已到,就命令將士渡過汜水,直沖竇建德大營。
竇建德正和他的將帥在大營聚會,聽到唐軍騎兵突然沖來,趕忙指揮騎兵應戰(zhàn)。雙方發(fā)生了激戰(zhàn),陣地上塵土飛揚,箭如雨落。
李世民乘夏軍不防備,帶領(lǐng)一支隊伍**到夏軍陣后,舉起了唐軍的大旗。夏軍將士回頭一看,以為唐軍已經(jīng)占領(lǐng)大營,沒有心思再戰(zhàn),爭先恐后地逃散。竇建德在混戰(zhàn)中受了傷,被唐軍俘虜了。
竇建德失敗后,李世民再回兵圍攻東都。王世充還想突圍,將土們說:“現(xiàn)在夏王已經(jīng)失敗,我們就是突圍出去,也沒有用。”王世充眼看大勢已去,只好向唐軍投降了。
竇建德被送到長安,不久就被殺害,他的部將劉黑闥(音tà)率領(lǐng)河北夏軍,繼續(xù)和唐軍作戰(zhàn)。唐軍又花了三年時間,才把河北地區(qū)穩(wěn)定下來。公元623年,唐統(tǒng)一中國的戰(zhàn)爭基本結(jié)束。但是,唐朝皇室內(nèi)部的矛盾卻尖銳起來。