永昌元年(322年)正月,王敦自江州武昌起兵,以讨伐刘隗为名进攻建康。司马睿得知后大怒,命令刘隗等人返回建康准备防守,并亲自披挂上阵,镇守城郊。王敦率军直逼石头城(建康西边的军事要塞),原本计划进攻刘隗驻守的金城,但在杜弘的建议下转而攻打石头城,并首先攻破周札的防線。王敦攻占石头城后,又击败了戴渊、刘隗、王导、周𫖮、郭逸和虞潭的反击,刘隗和刁协被迫北逃。
王敦曾邀请甘卓一同起兵,甘卓虽口头答应,但实际上并未行动,反而劝阻王敦,并联络司马承、陶侃共同讨伐王敦,军队逼近武昌,使得百姓惊恐逃散。但甘卓并未采取进一步行动。
王敦进入石头城后,并未立即前往建康朝见司马睿,反而驻兵石头城,纵容士兵四处劫掠。官员因混乱而逃散,只剩下安东将军刘超和两名侍中一同侍奉司马睿,司马睿被迫求和。甘卓因担心危及皇帝,决定撤军。王敦攻占湘州,俘虏并杀害了司马承,又密令襄阳太守周虑暗杀甘卓。
王敦在与王导会面时,责怪他当初不听自己的建议,改立幼主,导致内乱发生,几乎使王氏家族覆灭;但王导依然坚定地与王敦辩论,王敦无法反驳。之后,王敦自任丞相、江州牧,进封武昌郡公,并加赐羽葆鼓吹,由太常荀崧主持册封仪式,王敦假意推辞。王敦还杀害了周𫖮和戴渊;因太子司马绍英勇有谋略,王敦企图诬陷他不孝以废黜他,但遭到温峤的强烈反对而未能得逞。王敦不久返回武昌,遥控朝政。王敦得势后,谋害了易雄等忠良之士,并在朝中安插党羽,相州牧等职位都由王氏族人担任,还以沈充、钱凤为谋主,纵容手下胡作非为,朝政混乱;有识之士都预感到王敦即将败亡。王敦还自任宁州和益州都督。同年,司马睿因忧愤去世,太子司马绍继位,是为晋明帝。
太宁元年(323年),王敦图谋篡位,暗示朝廷征召自己,司马绍于是下诏征召王敦。王敦被授予黄钺、班剑武贲二十人,奏事不名,入朝不趋,剑履上殿。王敦到达姑孰后,司马绍派侍中阮孚设宴犒劳王敦,但王敦称病不见,只派主簿接受,不久王敦自任扬州牧。后来,王敦的侄儿王允之听到钱凤与王敦讨论夺权计划,王允之立即告诉父亲王舒,而王舒和王导将此事告知司马绍,让朝廷做好准备应对王敦。
太宁二年(324年),王敦病重,部将钱凤和沈充暗中策划王敦去世后的行动,决定在王敦死后作乱,颠覆东晋,并劝王敦铲除有影响力的周札以及司马睿的心腹冉曾和公乘雄,王敦一一照办。当王敦病情恶化时,司马绍一方面派侍中陈晷等人探望王敦,另一方面暗中准备讨伐,并微服前往芜湖侦察王敦军的部署,还派大臣询问王敦的起居情况。
王敦任命温峤为丹阳尹,意图监控朝廷动静。但温峤向司马绍密报王敦的夺位阴谋,司马绍于是下令讨伐,并伪称王敦已死,激励将士讨伐王敦的部众。此时王敦病重,无法统率军队,于是以清除温峤等奸臣为名,任命哥哥王含为元帅,命钱凤、邓岳、周抚等率军五万,水陆并进,进攻建康。后在越城,中军司马曹浑击败了王含的军队,王敦得知后大怒,欲亲自领兵作战,但因病情严重无法下床。另一方面,钱凤等人率军抵达建康,屡次被司马绍亲率的军队击败。此时王敦去世,享年五十九岁。王敦临终前告诉养子王应和羊鉴,他死后要先安排文武百官,再处理丧事。但王应秘不发丧,用席子包裹王敦的尸体,涂上蜡后埋在屋内,并与诸葛瑶等人纵情酒色。不久王含、沈充、钱凤等人的军队皆被打败,王敦之乱得以平息。之后,王敦的尸体被挖出,焚烧衣冠,并以长跪的姿势枭首,头颅与沈充等人的头颅一同悬挂在城南的朱雀桥上,向民众展示。王敦的尸首无人敢收敛,最后在尚书令郗鉴的建议下,才允许王敦家属收葬。
王敦败亡后,其党羽都被追捕,但琅琊王氏并未受到牵连,如王导等人还获得加官晋爵。