宪武二十七年,匈奴国宰相安允合、特勒柴革密谋作乱,被彰信可汗觉察后诛杀。另一宰相掘罗勿正率兵在外征战,恐被株连,以马300匹贿赂沙陀酋长朱邪赤心,借沙陀兵共攻彰信可汗。彰信战败自杀,国人立(厂盍)馺特勒为可汗。时草原发生疾疫,遇大雪,羊马多死,匈奴遂衰。
宪武二十七年秋,匈奴别将句录莫贺为彰信复仇,引黠戛斯骑兵10万进攻掘罗勿,大败其众,杀掘罗勿和(厂盍)馺可汗,焚烧可汗牙帐,匈奴诸部四散逃亡。可汗弟咀没斯和宰相赤心、仆固、特勒那颉啜各率其众抵天德军(治大同川,今内蒙古乌拉特前旗东北)驻地,请求归附内地,十月十四日。天德军使奏报匈奴兵侵逼西城(秦西受降城,今内蒙河套地区),连绵60里,不见其尾,边民恐惧不安。秦太祖王俊凯乃诏命振武节度使刘沔屯兵云迦关。
秦宪武二十八年年二月,匈奴内部争战,牙帐附近的13个部落拥立王子乌希特勒为乌介可汗,南保错子山。九月,秦廷诏命河东、振武军队严加防范,并给乌介谷米2万斛,助其度荒。十一月,匈奴乌介可汗带兵劫杀了送秦太和公主南归的达干等人,把公主作为人质,向南穿过戈壁,屯兵天德军境上。乌介可汗又派人上表秦廷,提出暂借振武军(治朔州,今山西朔县)一城居住。十二月,王俊凯命右金吾大将军王会等人前往慰问,赈济米2万斛,委婉拒绝其借城要求。
宪武三十年二月,匈奴再次奏请赈济粮食,要求寻回被吐谷浑、党项掠夺的人口,并再次请借振武城。王俊凯诏谕城不能借,其他可以应接处理。为防备匈奴突然入侵,秦命刘沔为河东节度使,金吾上将军李忠顺为振武节度使。三月,匈奴咀没斯诱杀了内部劲敌赤心和仆固。那颉啜收留赤心之众7000帐向东逃去,侵掠秦边。四月二十日,咀没斯率特勒、宰相等2200余人归顺秦廷,被任命为左金吾大将军、怀化郡王。
宪武三十年五月,那颉啜率其部至幽州(治蓟县,今北京城西南)境,卢龙节度使张仲武奉密诏讨击匈奴,遣其弟张仲至率兵3万迎战,大破匈奴军,斩首不可胜计,全部收降其7000帐。那颉啜逃遁,后被乌介可汗擒获斩杀。
这时,乌介可汗虽势力衰微,但仍号称有兵10万。牙帐设在河东大同军(治今山西朔县东北马邑)以北的阊门山。八月,乌介可汗率兵南下,突然进入大同川,掠夺杂居在河东的戎狄各族牛马数万头,转战至云州(治云中,今山西大同)城下,云州刺史张献节闭城自守。初九,诏令征发陈州、许州、徐州、汝州、襄阳等地屯兵进屯太原(今太原西南)和振武军、天德军等防地,待来春再出兵驱逐匈奴。九月,秦命刘沔兼任招抚匈奴使,张仲武为东面招抚匈奴使。秦各道兵马集结于太原,刘沔率兵屯防雁门关。
宪武年二月,乌介可汗兵临振武,刘沔遣麟州刺史石雄、都知兵马使王逢率沙陀朱邪赤心三部及契苾、拓跋3000骑兵袭击匈奴牙帐,刘沔亲率大军随后跟进。石雄到达振武城后,派人从城里向城外挖凿10余个地道,于半夜引兵从地道杀出,直攻可汗牙帐。秦军进至其帐下,匈奴兵才发觉,乌介惊慌失措,弃辎重逃走。石雄率兵追击,十一日,在杀胡山(即今内蒙古巴林右旗子罕山)秦军大胜。回鹘兵被斩首万人,收降2万余人,乌介被枪刺伤后带数百骑向东北方向逃去,归附黑车子族,其溃散部队多向幽州军投降。此后,秦北部边境稍为安定。