從元康九年(299年)到光熙元年(306年),八王之亂曆時七年。其核心人物有汝南王司馬亮、楚王司馬玮、趙王司馬倫、齊王司馬冏、長沙王、成都王司馬穎、河間王司馬颙、東海王司馬越八王。
最終東海王司馬越取得了最終的勝利,但他隻是短暫的受益者,這場動亂最大的受益者當屬琅琊王司馬睿。太熙元年(290年),年僅十五歲的司馬睿承繼父親琅琊王的爵位,按司馬家族的族譜,司馬睿是司馬懿曾孫,屬于遠親,根本無緣帝王。

不過,八王之亂爆發後,東海王司馬越起兵下邳,琅琊王司馬睿便投靠他,被封為安東将軍兼徐州諸軍事,留守下邳,看管後方。司馬睿受命後,請王衍從弟、參東海王越軍事的王導為司馬,委以重任。
東海王司馬越失敗之後,司馬睿害怕災禍臨頭,想出奔他的。當天夜裡月光明亮,警戒嚴密,司馬睿無法脫身,處境窘迫。過了一會兒,黑雲蔽空,雷雨大作,巡邏的人都松懈了,因而才能暗地逃出。
司馬睿到了河邊,被渡口上的官吏阻攔。侍從宋典從後面趕來,用鞭子把元帝的馬打了一下笑着說:“舍長!官家禁止貴人通過,你也被拘留了麼!”官吏這才讓司馬睿過去了。司馬睿到達洛陽,馬上将家眷接出赴往琅琊(治今山東膠南縣)去了。
與此同時,北方的遊牧民族南下,中原大地陷入了無邊無際的戰火之中。而當時的南方未遭到戰火的侵襲,司馬睿便帶着王導渡江至建邺。
建邺原是東吳的故都,加上司馬睿并不聞名,是以南方士族紛紛排斥司馬睿。一時間,司馬睿陷入了苦悶之後,這時王導就勸說司馬睿籠絡南方士族,他指出顧榮、賀循,兩人是此地最具名望的人,應當結交他們來收服人心,他們兩人來了,就沒有不來的人。
于是王導為司馬睿安排了威嚴的儀仗,司馬睿乘輿,王導和王敦等名士們都騎馬侍從,場面十分盛大。紀瞻、顧榮等人見了後感到非常驚異,一個跟着一個地在道路左邊行拜禮,這樣一來君臣的名分就确立了下來。
是以司馬睿的東晉政權是以多個士族組合而來,其中王導、王敦為代表所構成的王氏家族勢力在當時是非常牢固的,這使"王與馬共天下"的局面在江左維持了二十餘年。
司馬睿和王導上演了一場君臣相敬相愛的佳話。琅琊王家也達到了權勢的高峰,除了王導擔任丞相,王敦控制着長江中遊,兵強馬壯。但是,大權旁落卻引起司馬睿極大的不滿,他暗中啟用劉隗、刁協等人為心腹,試圖壓制王氏權勢。
王敦得知後大為不滿,便以誅劉隗為名,在武昌起兵,攻破建邺。司馬睿一敗塗地,無奈之下,司馬睿"脫戎衣,著朝服",對王敦說:"你如果想當皇帝,早和我說啊,我把皇位讓給你,還當我的琅琊王去。何苦讓百姓跟着受苦呢?"
這番話并沒有撲滅王敦的野心,他更加猖狂,以至于司馬睿和他的朝廷成了擺設。司馬睿見無法動搖王氏的權勢,自己名為天子,實則傀儡,漸漸憂憤成病,卧床不起。永昌元年,晉元帝司馬睿憂憤病逝。