然而,当事人卫可孤先生,并不知道他手上把握着那么多个王朝的兴废。他只知道,这个怀朔镇是块难啃的硬骨头,重重围攻之下竟经年不克。怀朔镇镇将杨钧,在历史上不是个知名的人物,但他手下那些将校,却多在二十四史中有自己的列传——也就是说,假以时日,这帮人都是些了不得的角色。
当时最出名的,是尖山人贺拔度拔和他的三个儿子贺拔允、贺拔胜、贺拔岳。杨钧以贺拔度拔为统军,其三子为军主,拼死抵抗卫可孤。卫可孤虽然兵力强大,一时倒也攻不下怀朔镇,双方僵持到次年四月,怀朔镇处境危急,杨钧遂派贺拔胜帅勇士十余人夜间突围求援。贺拔胜好不容易找到朝廷派来平定破六韩拔陵起义的临淮王元彧,才发现王爷胆子小,一路上正磨蹭着呢。经他一番苦劝,王爷总算许诺出兵援助——但一直到怀朔镇陷落,也没看见援军的一兵一卒。
贺拔胜得到临淮王的许诺后,重新杀回被重重围困的怀朔镇。杨钧立马又派他突围去武川察看情况。当时武川已经陷落,贺拔胜把这个坏消息带回怀朔后,怀朔镇人心沮丧,随即也被卫可孤攻陷,贺拔度拔父子四人被卫可孤俘虏。大部分军民被编入起义军中,如后来作《敕勒歌》的怀朔镇军主高车人斛律金,就被破六韩拔陵封为王。一部分人逃散,如省事司马子如、外兵史侯景、刘贵等人逃到山西秀荣,投靠了当地契胡酋长尔朱荣;前邮递员高欢则和他的几个死党,投奔起事于上谷的杜洛周军。
被卫可孤俘虏的贺拔度拔父子四人,与武川人宇文肱纠合同乡豪杰,趁其不备,袭杀了卫可孤。贺拔度拔不久即在与高车部落的战斗中阵亡,贺拔胜等人归附了广阳王元渊,宇文肱则辗转投靠了鲜于修礼。
五月间,临淮王元彧与破六韩拔陵会战于五原,战败;安北将军李叔仁也在白道吃了败仗,一时间破六韩拔陵声势大振。北魏改以老将李崇为北讨大都督。然而李崇也不能力挽危局,七月间,他手下大将崔暹再度在白道遭破六韩拔陵击败,塞外高车东西两部落也纷纷叛离北魏,归附破六韩拔陵。北魏罢李崇官,改以广阳王元渊为统帅。
元渊也没什么好主意,只好躲在广阳城里和破六韩拔陵相持。参军于谨献计,认为当前盗贼蜂起,不是仅凭武力可以镇压完的,建议采取怀柔政策,对起义者予以招降。于谨祖上世为北边镇将,故熟悉胡汉风俗,兼通各族语言,他单骑来到叛离的西部高车部落,游说其酋长乜列河。在他的劝说下,乜列河同意率部落三万余户南下投降元渊。
元渊本拟亲自率兵北上折敷岭迎接南来的乜列河部落,但足智多谋的于谨阻止了他,他还有更高明的计划。于谨估计,乜列河的南逃,必将引起破六韩拔陵的愤怒,他一定会派兵追击,因此魏军大可以乜列河为诱饵,设一个捕鼠夹子给破六韩拔陵钻。果然,破六韩拔陵闻知西部高车归服北魏后,引兵要击南下途中的乜列河部落,被元渊、于谨的伏兵打得大败。
柔然头兵可汗阿那瑰也率军帮助北魏王朝,大败破六韩拔陵,击杀其大将孔雀等人。破六韩拔陵屡遭败绩,为躲避柔然的攻击,南下欲渡黄河,元渊率众堵截,前后招降二十万人,破六韩拔陵本人战死,这次起义就此失败。
然而北魏并没有处理好这二十万降众,只是随随便便将他们分散安置于冀、定、瀛三州就食。冀、定、瀛三州,历来是世家豪族集中的地区,本没有这二十万降众容身之处。加之这里本就连年灾荒,人民饥馑,突然涌入二十多万人,社会矛盾就更趋激化。北魏王朝对投降者处置失宜,导致新的起义又迅速爆发。