公元322年正月,王敦在武昌起兵,以讨伐奸臣刘隗的名义东攻建康。他上疏列举刘隗十大罪状,表示只要刘隗授首便撤军退回。
党羽沈充在吴兴举兵响应。不久,王敦兵至芜湖,又奏列刁协罪状。司马睿大怒,下诏定王敦为“大逆”,表示要亲率六军与其决战,并急调刘隗、戴渊入卫建康。但当时门阀士族对王敦起兵大多态度暧昧。温峤便曾表示王敦所为必有原因,不算过分。王敦的兄长王含时为光禄勋,亦闻讯叛投王敦。
王敦起兵之初,曾遣使前往梁州、湘州,约甘卓、司马承一同东下。甘卓虽允诺,但却一直未曾出兵,在朝廷和王敦之间持观望态度。而司马承则囚禁来使,在长沙举兵声讨王敦,并攻杀王敦的姐夫湘东太守郑澹。
王敦一面命南蛮校尉魏乂、将军李恒等率两万兵马攻打长沙,一面命参军乐道融去游说甘卓出兵支持自己。乐道融本就不满王敦叛乱之举,趁机背叛了王敦,反劝甘卓袭击武昌。当时,司马承亦命主簿邓骞到梁州劝说甘卓,促请其起兵勤王。甘卓经过多番犹豫,最终还是决定支持朝廷,遂传檄声讨王敦。
武昌震动。王敦忙遣使向甘卓求和,请他罢兵退回梁州。甘卓再次犹豫,刚刚行至猪口便停军不进。
刘隗很快便与戴渊相继赶回建康,并与刁协一同入宫,请求司马睿诛杀留在京中的琅邪王氏族人,却被司马睿所拒绝。当时,王导率宗族子弟二十多人,每日至台城待罪,最终都得司马睿宽恕。
司马睿又命王廙去劝止王敦。但王廙非但不能谏阻王敦,反而被王敦留下,协助王敦的行动。就在当年三月,王敦大军逼近建康。司马睿以右将军周札守卫石头城,并亲自披甲出镇城郊,准备迎战。而刘隗则戍守金城,作为外援。
王敦欲先攻金城,打击刘隗。杜弘却认为周札刻薄少恩不得军心,建议先取石头城。王敦遂进攻石头城。周札开城投降。司马睿忙命刘隗、戴渊等率部反攻石头城,但皆大败而回。太子司马绍闻听诸军皆败,欲亲率将士出城决战,被温峤谏止。
刘隗、刁协率败兵回到台城。司马睿给二人配备人马,让他们逃离建康,自寻生路。刁协刚刚逃至江乘,便被随从斩杀,首级送呈王敦。而刘隗则逃回淮阴,但却遭到刘遐的袭击,只得率妻小亲信投奔后赵。
王敦起兵打的旗号是清君侧,而此时刁协伏诛、刘隗北逃,朝中“奸臣”业已清除。但他却继续拥兵石头城,不但不到台城朝见司马睿,反而纵兵四处劫掠。建康大乱,台城中的官员、卫士尽皆逃散,只剩安东将军刘超与两名侍中随侍在司马睿身侧。司马睿无奈,只得遣使向王敦求和。他命公卿百官到石头城拜见王敦,同时大赦天下,宣告王敦等无罪,以王敦为丞相、都督中外诸军事、录尚书事、江州牧,封武昌郡公,食邑万户。至此,朝政大权尽归王敦,司马睿被彻底架空。
王敦掌权后,因戴渊、周顗素有人望,将二人收捕杀害。当时,甘卓仍停驻于猪口。王敦以朝廷的名义发出驺虞幡,命甘卓退兵。甘卓担心继续进攻武昌会逼得王敦劫持天子,遂下令撤军。乐道融与都尉秦康都认为应继续进军,并建议甘卓分兵截断彭泽湖口,断绝王敦在建康与后方武昌的联系,然后一鼓解决王敦。甘卓不听,径自撤回梁州。随后,王敦又对朝廷官员及军镇将领进行了一番调整。
王敦当时驻兵石头城,一直不肯到台城朝见司马睿。长史谢鲲试图劝说王敦,让他朝见天子,以消除君臣之间的隔阂。但王敦却担心入朝时会发生变故,竟“不朝而去”,径自回镇武昌,遥控朝政。
不久,魏乂攻破湘州,擒获司马承,将其用槛车解送武昌。王敦命荆州刺史王廙在半路将司马承杀害,同时又指使襄阳太守周虑袭杀甘卓,控制了湘州、梁州这两个能够牵制江州的军事重镇。而与此同时,沈充亦由吴兴攻入吴国,杀死了吴国内史张茂。
王敦在武昌大肆谋害忠良,扶植亲党,后又自领宁、益二州都督。他还取消司徒一职,将司徒府官属全部并入自己的丞相府。司马睿因大权旁落,公元322年年末忧愤而死。司马绍即位。当时,王敦因司马绍勇而有谋,欲诬以不孝之名将其废黜,但却遭到温峤等大臣的强烈反对,最终未能得逞。他为了就近掌控朝政,又暗示朝廷征己入朝。司马绍遂手诏征召王敦入朝,授其假黄钺以及“奏事不名,入朝不趋,剑覆上殿”等殊礼,赐班剑甲士二十人。
公元323年四月,王敦由武昌移镇姑孰,屯驻于城东的于湖,并自领扬州牧,直接控制了京畿地区。此后,王敦权势更盛,甚至达到“四方贡献多入己府,将相岳牧悉出其门”的地步。他控制扬州江州、荆州、徐州等重镇,以沈充、钱凤为谋主,以诸葛瑶、邓岳、周抚、李恒、谢雍为爪牙,更纵容沈充等人胡作非为,有篡夺晋室之意。但在当时,王氏兄弟如王导、王彬、王舒、王棱等,都或明或暗地反对王敦。王棱甚至因此被王敦暗杀。
司马绍面对“王敦专制,内外危逼”的局面,命郗鉴以兖州刺史之职镇守合肥,欲以其为外援对抗王敦。
但王敦却表举郗鉴为尚书令,迫使司马绍将郗鉴召回朝中。郗鉴在入朝途中被王敦扣留于姑孰,但因素有名望,使得王敦未敢轻易加害。他最终还是被放回了建康,遂与司马绍共谋讨伐王敦。当时,王敦与钱凤等亲信密谋篡晋,不慎被堂侄王允之获悉。王允之假装酒醉沉睡,骗过了王敦。他不久便以回京探父为由回到建康,通过王舒、王导将王敦的图谋报告给了司马绍。