司马颙不满司马乂独揽朝政,多次派人刺杀他,都失败了。公元303年,司马颙派张方率军与司马颖一起攻打司马乂。司马乂兴兵迎击。双方连续作战几个月,最终司马颖、张方等不得不退兵。
第二年,在朝廷任司空的东海王司马越勾结禁军,发动政变,捕获司马乂,将其交给司马颙。事后,在朝野向来有威望的司马颖出任丞相,司马颙出任太宰,司马越出任尚书令。不久,司马颙出面上表,废除皇太子司马覃,册封司马颖为皇太弟,兼任丞相。
司马越不满司马颖专政,劫持司马衷,并率10多万人,进攻邺城,讨伐司马颖。司马颖派石超率5万人迎战。石超率军在**阴打败司马越,并俘虏司马衷。
司马越兵败逃走后,司马颖下令宽恕他,召他回朝,他不愿意。东瀛公司马腾、王浚等人联合乌桓人、羯族人,一起反攻,不断获得胜利。
失败消息传到邺城,官僚士兵争相逃跑。司马颖非常恐慌,带领亲信连同司马衷连夜逃到洛阳。司马衷被张方截留。司马颖不久逃到长安,被废除皇太弟之位。司马颙自行选置百官,传皇帝命令,任命司马越为太傅,要求他回朝共同辅政。司马越不接受。
公元305年,司马颙逼迫司马衷下诏废黜司马越。司马越一边起兵,一边派人游说司马颙将皇帝送回洛阳,然后他们两人共享权力。司马颙继续顽抗。
司马越亲自率领3万精兵西征长安,范阳王司马虓派800精锐骑兵助战,击败司马颙大将刘佑所部,进驻到阳武。司马颙得知消息,非常恐慌,密令人杀张方,将张方的人头送到司马越军中求和。谁知,杀张方不仅没如期求和,还导致局势恶化。
鲜卑首领祁弘等率军攻破潼关,进入关中。祁弘是司马越的同盟者。司马颙非常惊恐,派人抵抗又遭惨败。他只好一个人骑马逃出长安,到太白山躲难。随后,鲜卑人抢掠屠杀了长安。
公元306年,司马越率军将司马衷护送回洛阳。司马衷下诏升司马越为太傅录尚书,司马虓为司空,下令逮捕司马颖。司马颖在逃亡中被抓。司马虓不想杀掉司马颖,但在一个月后,他暴毙。司马颖也被杀。
公元307年1月8日,司马衷突然死亡,司马炽继位,司马越辅政,掌握朝廷大权。司马炽诏令司马颙回朝出任司徒。在回朝途中,司马颙被司马模派人掐死。司马越成为这场争夺朝政大权的最终胜利者。
诸王互相攻伐,天下失控。氐人齐万年变乱,成汉李特割据蜀地,匈奴刘渊趁机复国等,给以晋朝致命伤害。面对刘渊势力迅猛发展,司马越无力控制,还不忘排除异己,杀害中书监缪播、散骑常侍王延等人。司马越大失人心,公元310年,他以讨匈奴汉国为名,率军及王公大臣离开洛阳。
公元311年,司马越病死,匈奴军第三次围攻洛阳,各地军队要么拥兵观望,要么象征性勤王。大批臣民在平城被石勒屠杀。不久,洛阳被攻陷,皇帝司马炽被俘杀。秦王司马邺虽在司马炽遇害后于长安继位,在公元316年被俘,成为晋朝亡国之君。只有没参与争权战争的琅邪王司马睿出任安东将军都督扬州诸军事,镇守下邳,后移镇建邺,在江左发展,奠定了基础。司马邺死后,琅邪王司马睿重建晋朝。
而率先崛起的匈奴人几乎统治了中原,羯族、氐族、羌族、鲜卑族也相继崛起,在中原建立政权。中原历史进入了“五胡十六国”。