唐武德四年(公元621年)七月,高雅贤、王小胡密谋造反,但是没有可靠的人来作他们的带头者,所以就去占卜。
他们占卜的结果是姓刘的人为首领吉利,于是一同到漳南县,去见窦建德过去的将领刘雅,把计划告诉了他。
刘雅说:“天下刚刚安定,我打算终老乡下,不想再起兵。”众人很不高兴,又怕他泄露阴谋,于是将刘雅杀了。
汉东公刘黑闼(tà),这时在漳南隐居,这些将领就去拜见他,把起兵的计划告诉他。刘黑闼欣然从命。当时刘黑闼正在种菜,当即宰杀耕牛,和他们边吃边商定大计。
七月十九日,刘黑闼等人起兵,袭击并占领了漳南县。随后他们攻城略地,又得到窦建德旧部的响应,势力发展很快。
十一月十九日,刘黑闼攻下定州,俘虏了定州总管李玄通。刘黑闼爱惜他的才能,想任命他为大将,李玄通不答应。
军中有李玄通的老部下,给他送来酒肉,李玄通说:“各位可怜我被幽禁,拿酒肉来安慰我,我应当为你们一醉方休。”
酒喝得酣畅,李玄通对看守的卫士说:“我能舞剑,希望借我一把刀。”
看守给了他一把刀,李玄通舞完后叹息着说:“大丈夫蒙受国家厚恩,镇抚一方,不能保全镇守的领地,还有什么脸面活在世上!”于是举刀剖腹而死。唐高祖李渊听说后,为他痛哭流涕。
十二月初三,刘黑闼攻陷冀州,然后率领几万人马进逼宗城。当时唐黎州总管李世驻扎在宗城,闻讯放弃宗城,退保洛州。
十二日,刘黑闼追击李世,打败唐军,杀死步兵五千人,李世只身逃脱。洛州当地豪强翻过城墙响应刘黑闼,刘黑闼随即进入洛州城。
此后十天,刘黑闼率军攻陷相州,捉住相州刺史房晃,又往南攻取黎、卫二州。刘黑闼起兵半年,全部恢复了当年窦建德的领地。
武德五年(公元622年)正月,刘黑闼自称汉东王。刘黑闼的政治法律,全都效仿窦建德,但刘黑闼作战勇猛果断,远远胜过窦建德。
当月,唐幽州总管李艺率领几万军队,与秦王李世民会合,一起讨伐刘黑闼。
三月,李世民和李艺在沼水以南扎营,另外还分出军队驻扎在沼水北岸,与刘黑闼对峙。
两军相持不下,李世民推测刘黑闼的粮草已经用尽,一定会来决战,于是命人在沼水上游修筑堤坝,对看守堤坝的官吏说:“等我与敌军交战的时候,就决堤放水。”
二十六日,刘黑闼率领步兵、骑兵两万人,向南渡过沼水,逼近唐军军营布阵。李世民亲自率领精锐骑兵进攻刘黑闼的骑兵,大败敌军,乘胜驰马冲击刘黑闼的步兵。
刘黑闼带领军队殊死决战,从中午到黄昏,交战了好几个回合,刘黑闼的士兵快要不能支持。
王小胡对刘黑闼说:“我们的谋略力量都已耗尽,应该早点逃走。”于是王小胡与刘黑闼先行逃跑,其余的士兵不知道,仍然继续战斗。
唐军看守堤坝的官吏决开堤坝,洛水冲进战场,有一丈多深。刘黑闼的军队溃败,被斩首一万多人,淹死的有几千人,刘黑闼与范愿等二百人骑马逃奔突厥,唐军平定了整个山东。
六月,刘黑闼带着突厥军队入侵定州,他的旧部又召集兵马响应。朝廷任命淮阳王李道玄为河北道行军总管,讨伐刘黑闼。
九月,刘黑闼攻陷瀛洲,杀死刺史马匡武。盐州人马君德占据州城,叛归刘黑闼。
十月,李渊下诏,任命李元吉为领军大将军、并州大总管,让他在崤山以东讨伐刘黑闼。
十七日,淮阳王李道玄与刘黑闼在下博交锋,唐军失败,李道玄被刘黑闼杀死。当时李道玄率领三万兵马,与副将史万宝没有协调好,李道玄率领骑兵率先冲进敌阵,让史万宝率领大军紧随其后。
史万宝却按兵不动,对他的亲信说:“我奉皇帝敕令,因为淮阳王是个小孩子,所以军事都委托给老夫。现在淮阳王轻举妄动,如果与他一起进攻,一定会一起败亡,不如用淮阳王作饵,引诱敌人。淮阳王失败,敌人一定争着前进,我摆下坚阵等候,一定能攻破敌人!”
故此,李道玄孤军深入敌阵,战败覆亡。史万宝率领军队准备作战,但士兵都丧失斗志,唐军于是溃败,史万宝逃回京城。
李道玄多次跟随李世民出征,死的时候才十九岁。李世民十分痛惜,对人说:“道玄经常跟着我征伐,看见我深入敌阵,心里羡慕,想要效仿,以至于此。”
十二月,刘黑闼攻打魏州,没能攻下,太子李建成、齐王李元吉率大军到昌乐,两军两次列阵对峙,但都没有交战。不久,刘黑闼军粮吃完,部众逃亡了很多,有的将自己的头领绑起来投降唐军。
刘黑闼担心城里的唐军出来,自己受夹击,于是连夜退逃,逃到馆陶,永济桥还没修好,不能过河。刘黑闼背水布阵,见桥搭好,立刻过桥逃走,结果他的部下迅速崩溃。唐军过桥追击,才过了一千多骑兵,桥就塌了,因此刘黑闼才得以与几百名骑兵逃走。
武德六年(公元623年)正月初五,刘黑闼任命的饶州刺史诸葛德威俘虏了刘黑闼,献出城池,投降唐军。
当时,太子李建成派遣骑兵将领刘弘基追击刘黑闼。刘黑闼被唐军追赶,不停地奔逃,不得休息,到达饶阳时,随行的只有一百多人,十分饥饿,疲惫不堪。
诸葛德威出城迎接刘黑闼,请他进城,刘黑闼不愿意。诸葛德威流着泪坚持请求,刘黑闼于是答应了,到城墙旁的市场休息。
诸葛德威给他送来食物,还没吃完,就带兵把他抓了起来,押送到李建成那里,连同他的弟弟刘十善在洛州被斩首。