司马氏以杀夺手段建立的西晋,由于统治集团极度腐朽,在开国之君晋武帝司马炎时,大乱已经酿成。290年,司马炎死,皇族、外戚争夺政权的斗争公开化,导致了长达16年的“八王之乱”,更使生产受到严重破环,无怪乎范文澜在《中国通史》中十分气愤地说:“八王之乱是一幅群兽狂斗图,司马氏集团的全部残忍性腐朽性集中表现在这个狂斗中,由此引起三百年的战乱和分裂,居住在黄河流域的汉族与非汉族人民无不遭受灾难,司马氏集团的罪恶是无穷无尽的。”
304年,匈奴贵族刘渊乘乱起兵离后(今属山西),称汉王,建立前赵,称帝。310年,刘渊死,子刘聪继立。次年,刘聪遣石勒歼灭晋军十余万人于苦县宁平城(在今河南鹿邑西南),俘杀太尉王衍等;又派刘曜率兵破洛阳,俘晋怀帝,纵兵烧掠,杀王公士民三万余人。因这些事件发生在晋怀帝永嘉年间,故史称这一时期为“永嘉之乱”。313年,刘聪杀晋怀帝;司马业在长安即位,是为愍帝。316年,愍帝降汉,被杀,西晋止此。
连年混战,本已使黄河流域居民遭受到沉重灾难,与此同时,又接连发生自然灾害。309年夏,大旱,江、汉、河、洛都可步涉过河。310年,整个黄河流域遭受大蝗灾,草茎、树叶甚至连牛马毛都被吃光。接着,又发生大瘟疫,疫死的人不计其数。《晋书·食货志》说:“人多饥之,更相鬻卖(卖人为奴婢),奔迸流移,不可胜数。”于此可见,战乱以及因战乱而引起和加重的天灾,逼得居民无法生存,只好盲目地向着认为可能谋生的地区流亡。正当黄河流域陷入大混乱、大灾难的时候,长江流域算是较为安静的地方,于是中原士族和民众大批南迁,到长江流域尤其是江南去寻找出路。317年,司马睿在建康(今江苏南京)建立起偏安于江左的东晋王朝,又有一批中原士族渡江避乱。东晋建立前后,晋朝的一些将领曾采取军事行动,企图收复失土,都因权贵们的掣肘而无成就。如名将祖逖,曾于313年率部渡江,中流击楫,誓收复中原,得到各地人民的响应,进屯雍丘(今河南杞县),收复黄河以南地区,但因东晋内部迭起纠纷,对他不加支持,他忧愤成疾,于321年病死。桓温也曾三次北伐,356年收复洛阳,屡请还都,为大族所反对;369年攻前燕到枋头(今河南浚县西南),因粮运不继,受挫而还。北伐失败,河南得而复失,使中原人再次纷纷南渡。在此期间,临淮太守苏峻与豫州剌史祖约(祖逖弟)于327年起兵反,至次年苏峻阵亡,329年祖约兵败投后赵,历时两年多,又有许多人因战乱而流亡。《晋书·地理志》说:“成帝初,苏峻、祖约为乱江淮,胡寇又大至,百姓南渡者转多。”于此可知,永嘉年间迁居淮南的河南人,在这次战乱中又有许多人徙居于长江以南地区。
两晋时期的中原人南迁,从八王之乱开始,直到东晋末年,持续时间长;人数多,一批接一批,规模空前;人员庞杂,既有皇室贵族、官吏、地主、文人,又有农民、工匠、商人、士兵等,可以说各行各业、各个阶层的人都有;分布地广,有移居江苏、浙江的,有逃至湖南、湖北的,还有徙于江西、安徽、福建的,因而影响极其深远。对此,不少古代文献和谱牒中均有明确记载。例如,《资治通鉴》说:“时海内大乱,独江东差安,中国士民避乱江左者,多南渡江。”北齐文学家颜之推《观我生赋》自注云:“中原冠带,随晋室南渡者百家。”《晋书·王导传》说:“京洛倾覆,中州士女避乱江左者十六七。”《闽书》说:“永嘉二年,中原板荡,衣冠始入闽者八族,所谓林、黄、陈、郑、詹、丘、何、胡是也。”文中的“板荡”,出自《诗·大雅》中的《板》、《荡》二篇名,因这两篇诗皆咏周厉王的无道,所以后人使用“板荡”作为政局混乱、社会动荡不宁的代名词:“衣冠”,因古代士以上之人戴冠,衣冠连称,是古代士以上的服装,所以“衣冠”引申为指士族、士绅;“闽”即今福建。《台湾省通志·人民志·氏族篇》则说晋代从中原入闽者共13姓,即林、黄、张、刘、杨、郑、邱、何、詹、梁、钟、温、巫。《晋书》、《南史》等书的人物传记中,对中原许多名人的南迁时间、南迁后的活动都有详细记载。例如,颍川长社(今河南长葛)人钟雅,好学有才,“避乱东渡,元帝(司马睿)以为丞相记室参军”;南阳顺阳(今河南淅川)人范坚,“博学,善属文,永嘉中避乱江东,拜著作郎”;陈留考城(今河南民权)人蔡谟,避乱渡江,仕晋,“于礼仪宗庙制度,多所议定”;新蔡(今属河南)人干宝,少勤学,博览书记,南渡后,元帝令其领国史修纂,著《晋纪》,又著有《搜神记》;陈郡陈(今河南淮阳)人王隐,博学多文,“建兴(西晋愍帝年号)中过江”,仕晋为著作郎;陈郡阳夏(今河南太康)人袁乔,“博学有文才,注《论语》及《诗》,并诸文笔皆行世”;祖逖于西晋末率亲党数百家南移;新野(今属河南)人庾易,徙居江陵(今属湖北);南阳顺阳人范汪,六岁过江,依外祖父家新野庾氏,其子宁,家于丹阳(今安徽当涂县东北小丹阳);陈郡项(今河南沈丘)人周兴嗣,居于姑熟(即今安徽当涂);荥阳开封人郑鲜之,其祖郑袭,初为江乘令(江乘县治所在今江苏句容县北),在当地安家;颍川(今河南许昌)人荀济,其先迁居江苏;陈留圉(今河南杞县)人江逌,于晋代避乱屏居临海(今属浙江);陈郡长平(今河南西华)人殷羡,仕晋为豫章太守,其子殷浩,徙居东阳之信安县(今浙江衢县);南阳湟阳(今河南邓州)人刘乔,西晋时任豫州剌史,卒于官,其三世孙刘柳,徙居江陵;颍川长社人陈伯眕,于西晋建兴年间渡江,居曲阿(今江苏丹阳)新丰湖;陈郡阳夏人谢衡,西晋末避乱迁会稽始宁(今浙江上虞)东山,发展繁衍,孕育出许多著名人物,谢衡有二子;长子谢鲲,避地豫章(今江西),次子裒有六子,其中谢安、谢石分别为东晋宰相、大将。鉴于流亡到南方的人太多,东晋专门制定侨寄法,设立侨州、侨郡、侨县,安置北方逃来的士族和民众。侨州有司、豫、兖、徐、青、并6州,侨郡、侨县为数更是繁多。
晋代的中原人外迁,主要是到长江以南地区,也有被强制迁往西部和西北地区的。例如,371年,前秦迁关东(今陕西潼关以东地区)豪杰和杂夷十五万户至关中(今河南灵宝县东北故函谷关以西以及今陕西和甘肃东部秦岭以北地区);397年,后秦兵攻进洛阳(今属河南),徙流民二万余户至长安(今陕西西安);398年,北魏道武帝拓跋珪徙山东(今河南崤山以东地区)六州民夷十余万口赴代(今山西大同一带)。