本來冉魏可以有迅速壯大的機會,卻由於他的民族政策,失去了大批本來可以依附於他的人,自己打得頭破血流,損失殆盡,最終的結果卻是壯大了周圍的割據勢力。同時冉魏的稱帝政策也很不得人心,東晉討厭他,前燕防備他,前秦也沒有把他當朋友。冉魏雖然幾乎總是在打勝仗,但無論從內部實力上,還是外交手段上,他都是失敗者,結果是越打越少,越勝越弱。
劉顯殺了石祗,卻不肯再降冉閔,自己搞起割據。冉閔親自率兵攻打劉顯,劉顯手下大將軍曹伏駒投降獻城。冉閔攻入城中,殺劉顯及百官,暫時平定了中原。但中原攘亂已久,很多地方百里無人煙,沒人種糧,到處饑荒。冉閔於是帶兵去常山(今河北省石家莊市北三十里處,太行山腳下王定縣)和中山(今河北省西部太行山腳下平山縣)一帶籌糧。
燕王見冉閔只帶一萬步兵棄險外出籌糧,便以慕容恪為帥,慕容評、慕容軍、慕輿根、鮮於亮、高開等為將,選精兵十萬南下,意圖包圍冉閔軍隊,一戰而得中原。
冉閔手下人都勸他回去守城。但冉閔堅持出戰,準備趁慕容恪的大部隊未到,前鋒立足未穩的時候,打慕容恪一個措手不及。董閏、張溫、劉茂、劉群等人再三勸阻,冉閔不聽。劉茂著急了,大罵道:&ldo;你算是英雄麼?簡直是匹夫!連當前形勢都看不清,別說是爭天下了,此戰你就將有去無回。&rdo;說完就自殺了。
冉閔被劉茂這一招給鎮住了,再加上底下人苦勸不止,他決定不去迎擊而是調轉軍隊回去守城。冉閔先退到安喜(今河北定州市),慕容恪隨後追到;冉閔棄城再退向常山,慕容恪又追到;冉閔再退到魏昌(今河北無極縣),慕容恪也絲毫沒有停步的意思,繼續攻城略地一直殺到魏昌。
冉閔本來就憋了一肚子氣,終於忍不住了,回軍去戰。冉閔打仗是這樣:派盾牌手在最前面,後面埋伏弓弩手,再後是騎兵。對方衝過來時,盾牌手護住己方不受對方弓箭的襲擊,等對方殺到一定距離時,用急弩猛射。弩雖然不如箭射得遠,但比箭頻率高,速度快,準確度高。對方往往被弩射得亂了陣腳。然後盾牌手和弩箭手往兩邊一閃,騎兵從陣中殺出,直入對方中軍。如果對方有生力軍來援,再回陣固守,然後等對方再進攻時,重複剛才的打法。所以燕軍和魏軍打了幾仗,並沒有討到什麼便宜,反而傷損了不少士兵。
這種戰法讓慕容恪很苦惱,後來他也想出一個辦法。就是從軍中選出五千大力射手,人馬都披上重鎧甲,每五十騎一排,每排用鐵鎖連環。第一排是弓弩,第二排是長槍,以此類推,一共是一百排,列成方陣,號稱&ldo;連環馬&rdo;。連環馬陣殺向魏軍,魏軍的弩便不起作用了。遠處時雙方用箭互攻,倒是魏軍先吃了虧,等到了近前,那使長槍計程車兵直挺挺地把槍撞來。魏軍根本抵擋不住,被刺死踩死。後邊的騎兵看厲害也趕緊讓開。
但魏軍訓練有素,等這排連環馬過去,又重新回到原地,繼續列陣。後面衝來的燕軍又遇到了以前的打法,先被狂射一陣,然後又被騎兵衝破。燕軍因為剛才見到自己的連環馬厲害,以為沒事了,所以沖得更前,反被射死射傷得更多。而那些連環馬因為笨重,又鎖在一起,衝過去後就轉不過彎來了,結果燕軍又一次大敗。燕將高開戰死,慕輿根敗退。冉閔在燕兵中左沖右殺,正殺到慕容恪的中軍,於是直奔慕容恪殺去。慕容恪急忙走避,並放號炮召眾將士來攻。畢竟燕軍是魏軍的五倍,雖然敗了卻不潰散,整軍回來把魏軍團團圍住。魏軍寡不敵眾,整整殺了一天,直殺到半夜,幾乎全部戰死,無一人投降。劉群、董閏、張溫和冉閔都被生擒。
慕容恪把冉閔送到薊城,燕王見了他罵道:&ldo;你不過是石虎的一個奴僕,你也敢妄自稱帝?&rdo;