刘邦平定天下,各路诸侯都已归顺,但也有些诸侯王因一言不合就反汉,先是燕王臧荼造反,攻占代地,刘邦亲自率军前去讨伐,擒获了燕王臧荼,斩首示众。后有利几造反,刘邦又亲自带兵去讨伐,利几败逃。
利几原是项羽的部将,项羽失败时利几是陈县县令,没有跟随项羽,逃离陈县归降了刘邦,刘邦把他封在颖川为侯。刘邦打败了燕王臧荼回到洛阳后,召见全部在册的列侯,因利几以前与燕王臧荼有交往,心里害怕,不敢去见刘邦,就造反了,被刘邦追杀。
最让刘邦头痛的是韩王信,韩王信与匈奴勾结,在太原谋反。原来韩王信是韩襄王庶出后代,身高八尺五寸,伟岸英豪。沛公带部队攻打阳城时,派张良以韩国司徒身份,收复韩国原有土地时,得到了韩王信,任命他为韩国将军,带领他的部队随刘邦进入武关。
沛公被项羽立为汉王,韩王信追随沛公进入汉中,曾劝说汉王趁着气势强盛东进,与诸侯争天下。汉王回军平定三秦时,答应将韩信封为韩王,先委任他为韩太尉,让他带兵去攻打韩国土地。
此时韩地没有王,听说汉王派韩王信去攻打韩地,项羽才命令吴县县令郑昌做韩王,以抵抗韩王信的攻击。韩王信不负所望,攻占韩国十几座城池。汉王抵达河南,韩王信在阳城猛烈攻击韩王郑昌。郑昌投降,汉王刘邦封韩王信为韩王。
韩王信率领部队跟随汉王防守荥阳,楚汉相峙不下。等到楚王攻下荥阳,韩王信为了保命,投降了项羽。等有了机会,韩王信逃离荥阳,又回到汉王身边,汉王再次封他为韩王,国都建在颖川。
刘邦一直认为韩王信骁勇无比,可堪大用。而令刘邦感到头痛的是西北边塞,常受匈奴骚扰。刘邦便命令韩王信迁移到太原以北地区,以防御匈奴侵扰,建都晋阳。韩王信上书刘邦说:我的封国十分靠近边界,匈奴多次入侵,晋阳距离边境比较远,请允许我建都马邑。
刘邦答应了他,韩王信就把都城移到马邑。韩王信把都城建在马邑,引起了匈奴冒顿单于的不满,便率兵包围了马邑。韩王信多次派使者到匈奴见冒顿单于,请求和解,无果。韩王信只好向刘邦请求援兵,刘邦一方面派人带兵前来救助,又怀疑韩王信多次私自派使者前去匈奴的地方,有叛变汉朝之心,派人责怪韩王信。
韩王信害怕被杀死,于是就和匈奴约好,共同进攻汉朝,起兵造反,把国都马邑献给匈奴,并率军进攻太原。
汉七年冬天,刘邦亲率大军前往平叛,在铜鞮打败了韩王信的部队,杀死了他手下将领王喜。韩王信逃奔匈奴,他的手下白土人曼丘臣,王黄等人拥立赵王后代赵利为王,又收编了韩王信被击败逃散的部队,并联合韩王信及匈奴冒顿单于商量一起进攻汉朝。
匈奴派遣左右贤王率领一万骑兵,和王黄等人安营扎寨广武以南地区,汉军到达晋阳时,匈奴骑兵与王黄兵马迎战汉军,汉军以优势兵力,把匈奴军打的大败。汉军乘胜追击,追赶到黄石与匈奴再战,匈奴又败。