唐武德四年(公元621年)七月,高雅賢、王小胡密謀造反,但是沒有可靠的人來作他們的帶頭者,所以就去占卜。
他們占卜的結果是姓劉的人為首領吉利,於是一同到漳南縣,去見竇建德過去的將領劉雅,把計劃告訴了他。
劉雅說:“天下剛剛安定,我打算終老鄉下,不想再起兵。”眾人很不高興,又怕他泄露陰謀,於是將劉雅殺了。
漢東公劉黑闥(tà),這時在漳南隱居,這些將領就去拜見他,把起兵的計劃告訴他。劉黑闥欣然從命。當時劉黑闥正在種菜,當即宰殺耕牛,和他們邊吃邊商定大計。
七月十九日,劉黑闥等人起兵,襲擊並占領了漳南縣。隨後他們攻城略地,又得到竇建德舊部的響應,勢力發展很快。
十一月十九日,劉黑闥攻下定州,俘虜了定州總管李玄通。劉黑闥愛惜他的才能,想任命他為大將,李玄通不答應。
軍中有李玄通的老部下,給他送來酒肉,李玄通說:“各位可憐我被幽禁,拿酒肉來安慰我,我應當為你們一醉方休。”
酒喝得酣暢,李玄通對看守的衛士說:“我能舞劍,希望借我一把刀。”
看守給了他一把刀,李玄通舞完後歎息著說:“大丈夫蒙受國家厚恩,鎮撫一方,不能保全鎮守的領地,還有什麽臉麵活在世上!”於是舉刀剖腹而死。唐高祖李淵聽說後,為他痛哭流涕。
十二月初三,劉黑闥攻陷冀州,然後率領幾萬人馬進逼宗城。當時唐黎州總管李世駐紮在宗城,聞訊放棄宗城,退保洛州。
十二日,劉黑闥追擊李世,打敗唐軍,殺死步兵五千人,李世隻身逃脫。洛州當地豪強翻過城牆響應劉黑闥,劉黑闥隨即進入洛州城。
此後十天,劉黑闥率軍攻陷相州,捉住相州刺史房晃,又往南攻取黎、衛二州。劉黑闥起兵半年,全部恢複了當年竇建德的領地。
武德五年(公元622年)正月,劉黑闥自稱漢東王。劉黑闥的政治法律,全都效仿竇建德,但劉黑闥作戰勇猛果斷,遠遠勝過竇建德。
當月,唐幽州總管李藝率領幾萬軍隊,與秦王李世民會合,一起討伐劉黑闥。
三月,李世民和李藝在沼水以南紮營,另外還分出軍隊駐紮在沼水北岸,與劉黑闥對峙。
兩軍相持不下,李世民推測劉黑闥的糧草已經用盡,一定會來決戰,於是命人在沼水上遊修築堤壩,對看守堤壩的官吏說:“等我與敵軍交戰的時候,就決堤放水。”
二十六日,劉黑闥率領步兵、騎兵兩萬人,向南渡過沼水,逼近唐軍軍營布陣。李世民親自率領精銳騎兵進攻劉黑闥的騎兵,大敗敵軍,乘勝馳馬衝擊劉黑闥的步兵。
劉黑闥帶領軍隊殊死決戰,從中午到黃昏,交戰了好幾個回合,劉黑闥的士兵快要不能支持。
王小胡對劉黑闥說:“我們的謀略力量都已耗盡,應該早點逃走。”於是王小胡與劉黑闥先行逃跑,其餘的士兵不知道,仍然繼續戰鬥。
唐軍看守堤壩的官吏決開堤壩,洛水衝進戰場,有一丈多深。劉黑闥的軍隊潰敗,被斬首一萬多人,淹死的有幾千人,劉黑闥與範願等二百人騎馬逃奔突厥,唐軍平定了整個山東。
六月,劉黑闥帶著突厥軍隊入侵定州,他的舊部又召集兵馬響應。朝廷任命淮陽王李道玄為河北道行軍總管,討伐劉黑闥。
九月,劉黑闥攻陷瀛洲,殺死刺史馬匡武。鹽州人馬君德占據州城,叛歸劉黑闥。
十月,李淵下詔,任命李元吉為領軍大將軍、並州大總管,讓他在崤山以東討伐劉黑闥。
十七日,淮陽王李道玄與劉黑闥在下博交鋒,唐軍失敗,李道玄被劉黑闥殺死。當時李道玄率領三萬兵馬,與副將史萬寶沒有協調好,李道玄率領騎兵率先衝進敵陣,讓史萬寶率領大軍緊隨其後。
史萬寶卻按兵不動,對他的親信說:“我奉皇帝敕令,因為淮陽王是個小孩子,所以軍事都委托給老夫。現在淮陽王輕舉妄動,如果與他一起進攻,一定會一起敗亡,不如用淮陽王作餌,引誘敵人。淮陽王失敗,敵人一定爭著前進,我擺下堅陣等候,一定能攻破敵人!”
故此,李道玄孤軍深入敵陣,戰敗覆亡。史萬寶率領軍隊準備作戰,但士兵都喪失鬥誌,唐軍於是潰敗,史萬寶逃回京城。
李道玄多次跟隨李世民出征,死的時候才十九歲。李世民十分痛惜,對人說:“道玄經常跟著我征伐,看見我深入敵陣,心裏羨慕,想要效仿,以至於此。”
十二月,劉黑闥攻打魏州,沒能攻下,太子李建成、齊王李元吉率大軍到昌樂,兩軍兩次列陣對峙,但都沒有交戰。不久,劉黑闥軍糧吃完,部眾逃亡了很多,有的將自己的頭領綁起來投降唐軍。
劉黑闥擔心城裏的唐軍出來,自己受夾擊,於是連夜退逃,逃到館陶,永濟橋還沒修好,不能過河。劉黑闥背水布陣,見橋搭好,立刻過橋逃走,結果他的部下迅速崩潰。唐軍過橋追擊,才過了一千多騎兵,橋就塌了,因此劉黑闥才得以與幾百名騎兵逃走。
武德六年(公元623年)正月初五,劉黑闥任命的饒州刺史諸葛德威俘虜了劉黑闥,獻出城池,投降唐軍。
當時,太子李建成派遣騎兵將領劉弘基追擊劉黑闥。劉黑闥被唐軍追趕,不停地奔逃,不得休息,到達饒陽時,隨行的隻有一百多人,十分饑餓,疲憊不堪。
諸葛德威出城迎接劉黑闥,請他進城,劉黑闥不願意。諸葛德威流著淚堅持請求,劉黑闥於是答應了,到城牆旁的市場休息。
諸葛德威給他送來食物,還沒吃完,就帶兵把他抓了起來,押送到李建成那裏,連同他的弟弟劉十善在洛州被斬首。