随着隋炀帝的去世,东都洛阳仍然被杨侗(隋炀帝的孙子)和隋朝的大臣王世充控制。
王世充拥护杨侗成为皇帝,并继续以隋朝的名义与起义军作战。
东都周围原本是瓦岗起义军活动的地区,李密曾多次击败隋军,但由于他的傲慢和自满,他与他的将军们之间产生了互相猜忌的情绪。
在与北方的宇文化及大战后,他的实力逐渐削弱。
王世充发现了李密的弱点,发动了突然攻击,击败了李密的军队。
李密带着残部逃到了长安,并投靠了唐朝。
王世充赶走了李密,自以为自己实力强大,就废除了杨侗,自立为帝,国号为郑。
此时,唐军已经清除了西北地区的几个强大分裂势力,稳定了后方。
620年,唐高祖派遣李世民进攻东都。李世民一军出关,河南的许多州县纷纷投降,唐军很快包围了东都。
李世民不仅善于打仗,而且善于用人,他从原瓦岗军和其他割据势力的降将中,收留了一批人才。
像著名的秦叔宝、程咬金、尉迟敬德等人,都成了他的得力助手。
有一次,李世民亲自率领500名骑兵在阵地上巡视。
恰巧被王世充发现,他发动了1万多名步兵和骑兵,突然包围了他们。
王世充的大将单雄信冲向李世民,用长矛刺伤了他。
尉迟敬德骑马赶到,高声喝道,刺下了单雄信的战马。
尉迟敬德保护李世民脱离了包围,两人率领骑兵在郑军的阵地上来回冲杀,使郑军吓得不敢阻挡。
过了一会儿,唐军源源不断地涌上来,打败了郑军。
从那年的秋天到第二年的春天,唐军对东都的围攻越来越激烈。
王世充在城池里严密防守,不断用石炮和弩箭攻击城外的唐军。
时间一长,唐军士兵也感到疲惫不堪。
有人建议李世民先停止进攻,回长安休整后再出发。
李世民说:“现在四周各州都已经投降,洛阳成了孤城,迟早可以攻下它,所以不应该半途而废。”
他下令将士们必须攻下东都,不然就不能退兵。
王世充被迫走投无路,只好派人偷偷出城,向窦建德求助。
窦建德领导的起义军是河北的一支强大势力,自称为夏国皇帝,攻占了唐军的许多土地。
他收到王世充的求救信后,带领30万人马水陆并进,救援东都。
他还派使者给李世民发信,要求他退回关中。
唐军的一些将军被夏军的强大军队吓坏了,建议暂时离开东都。
但也有人认为王世充的兵力还是很强大的,缺的是粮食。
如果让窦建德和王世充会合,用河北的粮食接济东都,就没有胜利的希望了。
因此,一定要把南下的窦建德大军堵住。
李世民接受了这一建议,将李元吉留在东都继续围攻王世充,自己带着3000多名精兵北上守卫虎牢关(即武牢关,今河南荥阳汜水镇)。
窦建德大军到了武牢关,被唐兵拦住了。
夏军几次进攻都没有成功,但李世民派骑兵抄小路过去,切断了夏军的粮道。
窦建德认为自己实力雄厚,不怕攻不下武牢关。
他拒绝了部将和妻子的劝阻,命令全军出动,摆开阵势,大声呐喊。
李世民上到高地观察夏军的阵势,说:“窦建德从未遇到过强大的敌人,从他们的阵势可以看出,他骄傲自满。”
只要我们按兵不动,等到他们人困马乏之时,一举出击,一定可以打败他们。
夏军摆好阵势,准备战斗,但是从早上到中午,唐军都没有出来作战。
窦建德的士兵又累又饿,有些人直接坐在地上,有些人在河边舀水喝。
李世民觉得时机已到,便命令士兵们渡过汜水,直奔窦建德的大营。
此时,窦建德正在和他的将军在大营聚会,听说唐军骑兵突然攻来,迅速指挥自己的骑兵作战。
双方发生了激烈的战斗,阵地上尘土飞扬,箭如雨下。
李世民趁着夏军不备,带领一支队伍插入他们的阵后,举起唐军的大旗。
夏军回头一看,以为唐军已经占领了营地,没有心思再战,纷纷逃跑了。
窦建德在混战中受了伤,被唐军俘虏。
打败窦建德后,李世民率军继续围攻东都。
王世充想突围,但将士们却认为现在夏王已经失败,就算突围出去也没有用。
王世充知道大局已定,无法挽回,只有投降。
第二天,他穿上素衣,带着太子、文武百官等2000多人出城,步行到唐军门口,俯伏请降。
李世民接受了投降,并答应不杀他。
他笑着对王世充说:“你以前常把我当孩童,如今面对孩童,为什么这么恭敬呢?”
听了这些话,王世充苦笑连连,连忙磕头谢罪。
李世民进入洛阳,先宣布军纪,命令唐军分守市肆,维持市面,禁止侵掠。
然后封存府库,取出部分的钱财和绢匹赏赐给将士。
唐军逮捕了王世充手下的十几位将军,如段达、单雄信、朱粲等人,并押到洛水边斩首。
李世民还下令打开监狱,释放王世充关押的所有无罪士民。
他还废除了许多道场,命令每座寺庙只留下30名僧侣,其他的僧尼一律还俗。经过一系列措施,洛阳的人心渐渐安定。
唐朝攻下东都,震惊了天下,王、窦余部纷纷投降。
窦建德的妻子曹氏、其子窦世善也举山东之地,奉上传国玺投降了唐朝。
至此,中原、河北和山东之地纷纷纳入大唐的统治下。
621年7月,李世民凯旋回长安,献俘太庙。
李渊下诏废王世充为庶人,流放于四川,窦建德则在长安被斩首。
后来,王世充在流放的路上也被敌人杀害了。
但李渊并没有惩罚凶手,反而下令以谋反罪,处死王世充的儿子、侄子和所有亲属。