話說永嘉七年313年)二月,晉懷帝遇害。四月,佔據長安的秦王司馬鄴稱帝,即晉愍帝。
晉愍帝任命司馬睿為左丞相、大都督一年後又進位丞相),負責都督陝東諸軍事,與右丞相、南陽王司馬保“分陝而治”,試圖拉攏他們共同抗擊漢趙政權的攻勢。但司馬睿以“方平定江東,未暇北伐”為由,拒不執行愍帝要他收復洛陽的詔令。
當居住在京口今江甦鎮江)的祖逖上書要求出師北伐時,司馬睿晉宣帝司馬懿曾孫,瑯邪恭王司馬覲之子)任命他為奮威將軍、豫州刺史,只給了少量人員、物資,允許他自行募兵出擊。
司馬睿無暇北顧並非全是托詞。在南方,不僅荊州的動亂一直未平,就連位居腹心的揚州也出現了麻煩。這時,不滿于司馬睿壓制的周 聯合東萊大族王恢起兵,打算消滅北來士族,由南士取而代之。後因密謀暴露,周 遂殺王恢滅口。司馬睿不斷調動,以羞辱周 ,使其憂憤而死。臨死前要求其子對“諸傖子”復仇。
周 死後,其子周勰在建興二年314年)利用吳人對司馬睿的不滿情緒,再度起兵,招募土豪,聲言進討執政的王導、刁協,聲勢浩大。司馬睿采納王導的建議,派在朝廷任黃門郎的周勰族佷周 前往處理事變,最終以溫和手段安撫了吳人。司馬睿考慮到義興周氏在三吳地區的影響力,所以沒有深究此事,照舊安撫周勰,並任命不同意起兵的周勰叔父周札為吳興太守,擢升周 為太子右衛率。
就在此時,遠在荊州的刺史陶侃擊敗杜䔖所領導的流民起義軍,並收復了湘州。陶侃的成功,引起了王敦的嫉妒。王敦此時都督江揚荊湘交廣六州諸軍事,擔任江州刺史,並自行選置官吏,日益驕橫。他乘陶侃在返回荊州的治所江陵之前辭行之機,將陶侃扣留,改為廣州刺史,另派其從弟王𦬅接任荊州刺史。此舉引發了荊州將吏的抗議,這使得王敦一度想要殺害陶侃,只是擔憂與陶侃有姻親關系的豫章太守周訪干涉,故終未動手。
建興四年316年)十一月,在漢趙軍的重圍之下,長安內外斷絕,兵疲糧竭,司馬睿又始終拒絕派兵赴援,山窮水盡的愍帝被迫出降。當這一消息被傳到江南時,司馬睿整軍宿營,作出一副發動北伐以解救愍帝的模樣。數天之後,這場政治表演便不了了之。為了給自己解脫塞責,司馬睿竟以“漕運稽期”的罪名冤殺丞相府督運令史淳于伯。然而淳于伯之死,引發了朝野部分人士的不滿,一時“百姓喧嘩,士女縱觀,咸曰其冤”,連司馬睿的心腹劉隗也出面為淳于伯鳴不平,要求懲辦與此事有關人員。最後,幕後主謀王導被迫出面承擔責任,請求將其免職。司馬睿也沒有處罰任何人員,只是承認自己的錯殺行為而已。
建興五年317年)二月,平東將軍一作弘農太守)宋哲帶著晉愍帝臨降前所寫的詔書逃至建鄴。詔書同意司馬睿代他“統攝萬機”,但要求他在稱帝後收復舊都,報仇雪恥,還隱含了對其坐視長安淪陷的不滿。于是,司馬睿在得到許可後,在眾臣的擁戴下,接受了晉王的名號。自此,他成為晉王朝的唯一代表。
六月,劉琨等一百八十名北方將領聯名上書司馬睿,進行勸進活動。司馬睿因愍帝未死、中原未復而不敢接受。這時,祖逖在收復大片北方領土之後,又在譙縣今安徽毫州)打敗石勒軍。司馬睿借勢傳檄天下,聲稱要派遣其子司馬裒統軍增援祖逖。然而隊伍尚未出發,司馬裒即被召回建鄴。
這年年底,晉愍帝被漢趙君主劉聰殺死。年僅十八歲。自此,司馬睿稱帝的阻礙消失,開始籌劃即位前的事宜。太興元年三月丙辰日318年4月26日),司馬睿終于登上了皇帝寶座,東晉正式建立。時年四十二歲。
在登基典禮中,司馬睿再三請王導同坐御床受賀,王導再三辭讓不敢當,他才作罷。這一非比尋常的舉動,一方面反映了東晉一朝主弱臣強的實際情況。即司馬氏的江南政權,在一定程度上是依靠王氏兄弟建立的,而王導、王敦,一內一外,實際把持了東晉政權。時人稱這種現象為“王與馬,共天下”。另一方面,隨著晉元帝司馬睿地位的鞏固和建鄴政權統治範圍的擴大,他越來越不甘于受王氏兄弟的擺布。晉元帝司馬睿要王導同坐御床,表面上示以尊崇,實際上則在暗示他應該有所收斂。