西晉末年,承戰禍之弊,朝廷中主弱臣昏,地方上動亂迭起。被東海王司馬越擁立的晉懷帝司馬熾,既無統治經驗,又不具備撥亂反正的才干。因此,當晉懷帝面對衰敗的政局時,束手無策就成了他最真實的寫照。
又由于這一時期全國水旱頻仍,蟲霜等自然災害屢發,于是就在戰亂、災荒、疾疫交相攻逼下,中原人民開始大量遷徙,從而掀起了一股前所未有的流民浪潮。
據統計,當時的流民總數,有30萬戶,約占全國總戶口的十二分之一強。這些流民本以為能通過遷徙的方式擺脫苦難,誰知走到哪里都不缺貪官暴吏。加上流民到達新地,生活往往沒有著落,一旦陷入絕境,就只好鋌而走險,群起造反。其中,見于史冊,且規模比較大的流民起義有:李特起義,張昌起義,王如起義,杜弢起義,李洪起義,等等。
上述流民起義,主要發生于南方,除巴蜀的李特及其子李雄建立并鞏固政權外,其余的起義都沒有堅持太長的時間。但是,盡管如此,這些流民起義還是極大的動搖了西晉王朝的統治基礎。西晉王朝的統治,已處于風雨飄搖之中。
與南方各地流民起義相呼應的是,北方內遷少數民族也展開了反晉斗爭。
西晉時期,原居住于西北邊境和東北地區的一些少數民族大量向內地流徙,形成了東漢以來民族大遷移的高潮。當時,內遷的少數民族有很多,主要有鮮卑、匈奴、羯、氐、羌等族,史稱“五胡”,若算上西南的巴氐(又稱賨人),則又可稱為“六夷”。
五胡內遷的原因,主要有兩種,一種是自愿的,一種是被迫的。前種是因為少數民族受到漢族封建經濟文化的影響,向往中原才來的;后種是漢族統治者為了擴大軍隊,補充勞力,強迫他們遷居的。這些少數民族遷入內地后,其大致分布情況如下:
匈奴居于山西北部及西北部,羯族居于山西東南部,氐、羌居于甘肅東部和陜西境內,鮮卑居于東起遼東、西至青海的塞外地區。
少數民族的大量內遷,使北方民族布局發生了很大變化,像氐、羌遷入關中的50余萬人,就差不多占了整個關中人口的一半。這種現象是中國古代民族關系長期發展的結果,它有利于內遷各族的社會進步和民族間的交往融合。
但是,西晉統治者們畢竟不是慈善家,他們招引或強迫少數民族內遷,完全是出于自身利益的考慮。由于各族人民隨時可能被征調當兵,有的承擔租稅剝削,甚至被充為佃客,掠賣為奴,所以,在各族聚居地區,民族間的對抗情緒一直長期存在。
早在西晉初年,就先后爆發了鮮卑人禿發樹機能和氐族齊萬年領導的少數民族反晉斗爭。雖然這些斗爭沒有對西晉統治造成太大的威脅,但是消耗了王朝大量的人力物力。比如禿發樹機能的起兵,西晉王朝前后共花了10年時間才最終平定。
面對日益高漲的反抗情緒,以江統為首的一些大族就認為,內遷各族“非我族類,其心必異”,建議用武力強制手段將他們趕回老家。很顯然,這種主張摻雜了太多的天真成分。首先,很多少數民族已經習慣了農耕定居生活,讓他們繼續回去放羊,估計沒人會同意;其次,漢族地主階級需要勞動力,也不想讓各族人民遷走。
于是,問題得不到解決,民族矛盾就不可避免的趨于激化。
八王之亂后,西晉王朝的統治基礎遭到嚴重破壞,一些少數民族首領看到當局腐敗與無能,就想趁機實現自己的政治野心。其中,以匈奴貴族劉淵最為活躍。
劉淵字元海,是匈奴左部帥劉豹的兒子,幼年時曾隨上黨人崔游學習經史百家和孫吳兵法,后又以“人質”身份留居洛陽,受到當時曹魏權臣司馬昭的厚待,漢化程度較深。劉豹死后,他接替父親職位,惠帝初年被升為匈奴五部大都督。八王之亂爆發時,匈奴貴族認為“興邦復業”的時機已到,于是就共推劉淵為大單于,準備起事。
永興元年(304),劉淵以協助“八王”之一的司馬穎抗擊對手為借口,集匈奴五部約5萬人,回到匈奴人在北部的根據地左國城(今山西方山縣),擺脫了晉王朝的控制。
不過,擺脫控制只是劉淵的第一步,他的最終目的是想稱霸中原。可他又擔心漢人不認同他,所以就打起了“尊漢”的旗號,建國號為漢,自稱漢王。劉淵的這種戰略思想,對他的發展帶來很大的影響,胡漢各族很多人都歸附他。其中,羯人石勒的加入,更是極大的增強了劉淵的實力。
石勒出生于羯族的一個中等家庭,爺爺和父親都曾經做過部落小帥。在這種優越的家庭中,石勒度過一個無憂無慮的童年。后來家道敗落,石勒為生活所迫,年僅14歲就跟隨老鄉到洛陽做一些小買賣。及至稍長,石勒變得健壯有膽力,善于騎射,很有才干。石勒的父親性格兇惡、粗野,與胡人不合群,常常讓石勒去代為管理所部胡人,很得人心。
西晉太安年間,并州發生饑亂,刺史司馬騰遂以掠賣胡人為生計,換購軍糧。石勒也被其擄掠,賣往山東財主師歡家為耕奴。師歡見他儀表堂堂,氣質出眾,便不把他當成奴隸看待,給他以自由身。
離開師歡不久,石勒感嘆自己命途多舛,不愿再受他人擺布,就召集王陽等八人為盜;后又有郭敖等十人投奔,組成了一支小隊伍,號稱“十八騎”。當時正值晉室內亂,全國各地到處都是造反者的身影,石勒所率的十八騎參加了魏郡牧帥汲桑領導的起義。石勒這個名字,就是汲桑給他取的。后來,汲桑為晉軍所殺,石勒干脆歸順了劉淵。
在劉淵帳下,石勒實力得以迅速發展,到攻打冀州時,已有十萬之眾。石勒雖然出身草莽,但是頗有統軍之能。他將部眾中的士人集中起來,成立一個名叫“君子營”的智囊團,專門為他出謀劃策。
與此同時,劉淵的勢力也日益壯大,并最終對洛陽形成了的合圍之勢。永嘉二年(308),劉淵正式稱帝,定國號為漢,遷都平陽(今山西臨汾)。隨即,他又命令兒子劉聰與大將王彌進攻洛陽,可惜都沒有成功。
永嘉四年(310),劉淵病死,其子劉聰殺兄自立為帝,繼續攻打洛陽。
次年,執掌西晉大權的司馬越憂懼而死,太尉王衍率軍護其靈柩,準備向東進入司馬越的封國將他安葬。大軍行至中途,被石勒的騎兵追及,結果,晉軍將士和王公貴族10余萬人全部被包了餃子,無一幸免。接著,石勒與劉聰聯兵攻入洛陽,俘虜了晉懷帝,并殺死了百官士民3萬余人。
此便是西晉歷史上著名的永嘉之亂。
建興元年(313),晉懷帝被殺,西晉殘余勢力賈疋等人在長安擁立武帝之孫司馬鄴為帝,是為晉愍帝。此時,長安已經殘敗不堪,根本無法支撐瀕臨覆滅的西晉政權。建興四年(316),劉聰派族弟劉曜進攻長安。晉愍帝無力抵抗,出降劉曜,西晉滅亡。