刘裕随徐、兖二州刺史安成王桓脩入朝拜见桓玄,桓玄对刘裕优待非常,多次招待刘裕,还赐给他很多金银财宝。刘皇后见到了刘裕,劝桓玄道:“刘裕龙行虎步,双目炯炯有神,不会久居人下,恐怕会成为祸患,不如尽早把他除掉。”桓玄摇摇头,说道:“皇后此言差矣,我正要利用刘裕帮我平定中原,怎么能现在就把他杀了呢?等到中原平定,再议此事。”

桓玄任命桓弘为青州刺史,镇守广陵;刁逵为豫州刺史,镇守历阳。这个刁逵就是那个差点把刘裕打死的人,因为他是士族出身,现在也被桓玄重用了。

刘裕和刘牢之的外甥何无忌同船返回京口,在船上他们就开始谋划推翻桓玄了。咨议参军刘迈的弟弟刘毅住在京口,他和何无忌相识多年,也胸怀大志,跟他商量怎么讨伐桓玄。何无忌说道:“桓家势大,我们该怎么办?”刘毅说道:“事物的强弱是不断变化的,只要我们找到强有力的领导者,就能成事!”何无忌说道:“草莽之中隐藏着无数英雄豪杰。”刘毅说道:“我看只有刘裕行。”两个人相视哈哈大笑。何无忌回去把这个消息告诉了刘裕,于是三个人结成同盟,然后又秘密联络了数人。

元兴三年(404)二月,刘裕、刘毅、何无忌、王元德、王仲德、孟昶、刘道规(刘裕的弟弟)、魏咏之、檀凭之、诸葛长民、辛扈兴、童厚之秘密联络,准备一同起兵攻打桓玄。刘道规是青州刺史桓弘的中兵参军,刘裕便安排他和刘毅、孟昶袭杀桓弘,占据广陵;诸葛长民是刁逵的参军,刘裕命他袭杀刁逵,占据历阳;王元德、辛扈兴和童厚之在建康,刘裕命他们作为内应,见机行事。他们约定好日期,一起行动。

孟昶的妻子周氏是富家之女,她捐出全部家产,亲手缝制战袍支持丈夫。何无忌的母亲刘氏也不断鼓励儿子,让他满怀信心。

二月二十八日,刘裕和何无忌袭杀桓脩,砍下他的人头示众。桓脩的司马刁弘带人前来,情势顿时紧张起来。刘裕谎称接到江州刺史郭昶之的传话,皇帝司马德宗命他诛杀叛徒,刁弘相信了,带人离开。

刘裕问何无忌道:“我们现在急需一个主簿(文字秘书),从哪里找?”何无忌回答道:“最佳人选就是刘穆之。”

刘穆之,字道和,小字道民,家里世代都在京口居住。他饱读诗书,博闻强识,但家庭贫苦,不修边幅,好吃好喝。后来刘穆之娶了京口大族江家的女儿,便经常到大舅哥家里混吃混喝,常遭人白眼,但他满不在乎。他老婆江氏替他丢人,多次提醒他不让他去,但他依旧我行我素。有次,江家大宴宾客,江氏特别嘱咐他不让他去,但刘穆之还是去了,酒足饭饱之后还要求吃槟榔,江家兄弟嘲笑他道:“槟榔是消食用的,你经常吃不饱,还吃这个做什么?”刘穆之感觉受到了侮辱,他这次是真生气了,从此再也不去江家。刘穆之发达以后记起这个事,便大摆宴席宴请江家兄弟,吃过饭后,专门安排后厨用金盘子端上来一斛的槟榔给他们吃,这是后话。

何无忌提到了刘穆之,刘裕说道:“我认识他。”立即命人带信去请。当时大街上人声嘈杂,刘穆之到大街上想看看发生了什么,正好遇到送信的人。他见信后,呆立良久,然后转身回家,把家里的破布撕了,绑到腿上来见刘裕。刘裕问刘穆之道:“我们刚刚起事,需要一位主簿,您看谁合适?”刘穆之回答道:“没有比我更合适的了。”刘裕哈哈大笑,说道:“那就委屈您了。”

刘裕派周安穆去争取刘迈,刘迈举棋不定,周安穆怕事情有变,提前溜了。刘迈最后选择了去报告桓玄,桓玄大怒,杀死了王元德、辛扈兴、童厚之,并把刘迈也一起杀了。

众人公推刘裕为盟主,让他总督徐州事务。刘裕以孟昶为长史镇守京口,以檀凭之为司马、朱龄石为参军,然后命刘钟统领彭城来投军的人。

二月二十九日,刘裕率领一千七百人进驻竹里。桓玄命扬州刺史新野王桓谦为征讨都督,派吴甫之、皇甫敷向京口进军。三月一日,刘裕率军和吴甫之的部队在江乘开战,刘裕一马当先,手舞大刀,大声呐喊,冲向吴甫之。吴甫之也是员猛将,但在刘裕面前没走几个回合就被斩于马下,楚军大败。刘裕率军前进,到达罗落桥。

楚将皇甫敷威猛,他率领数千人迎战刘裕,刘裕军渐渐不敌,檀凭之战死。皇甫敷把刘裕逼到一棵大树下,刘裕背靠大树,力劈数人,但好汉难敌四手,楚军围上来的越来越多。皇甫敷用大戟指着刘裕大声问道:“你想要个什么样的死法?”刘裕怒目圆睁,大呼道:“小子,你过来试试!”皇甫敷被震住了,不敢上前。正在这时,刘裕的援军赶到,他们急忙搭弓放箭。箭似流星,皇甫敷前额中箭,跌落马下,刘裕一个箭步扑到他面前,举刀要砍。皇甫敷说道:“老天助你,我今把子孙托付给你了。”刘裕并不搭话,手起刀落,皇甫敷人头落地,他的部众也纷纷逃散。刘裕后来对皇甫敷的后代照顾有加。此战过后,刘裕把檀凭之的部队交给他的侄子檀祗率领。

桓玄得到己方两位悍将被杀的消息,顿时魂飞魄散,六神无主,他问群臣道:“难道朕要失败吗?”群臣也无法回答。桓玄派桓谦及游击将军何澹之防守东陵,派卞范防守覆舟山西,合计两万人。

三月二日,刘裕让军队饱餐一顿后,下令把粮食抛弃,想吃饭就进城吃。刘裕率军向东陵发起攻击,他身先士卒,挥舞大刀冲锋在前,将士们紧随在后。他们喊杀声震天,个个以一当百,楚军不敌,桓谦大败。

桓玄之前已经准备好了退路。他命殷仲文暗中备好船只,待前线战败的消息传来,他便带着儿子桓昇、侄子桓伟找到殷仲文,一起登上船只,逆流南下。

刘裕率军进入建康,命刘钟接掌东府。三月三日,刘裕移驻石头城,派尚书王嘏率文武到寻阳去接司马德宗。三月五日,司徒王谧率众推举刘裕为都督扬、徐、兖、豫、青、冀、幽、并八州诸军事,兼徐州刺史,使持节。跟随刘裕骑兵的刘毅为青州刺史,何无忌为琅琊内史(太守),孟昶为丹阳尹,刘道规为义昌郡太守。刘裕把日常事务都交给刘穆之处理,刘穆之处理得井井有条,大家都非常满意。众臣认为王谧之前亲自解下司马德宗身上的玉佩交给桓玄,应该处死,但当年王谧救过刘裕的命,刘裕力保王谧,让他继续做司徒。

刘裕派诸葛长民去袭杀豫州刺史刁逵,诸葛长民失手被擒,刁逵把他押到囚车送往建康,桓玄出逃后,押车的士兵把他放走了。刁逵弃城逃走,被部下生擒,押往建康,送到了刘裕面前,刘裕下令把刁逵全族处斩,只放过了他最小的弟弟刁聘。刁逵的儿子刁雍被他的部下藏了起来,躲过了一劫,后被送往后秦。刘裕灭了刁逵,报了当年的一箭之仇。

桓玄逃到了寻阳,郭昶之给他补充了兵卒和军需物资。桓玄挟持着司马德宗往西跑,刘毅率何无忌和刘道规追赶。四月三日,桓玄一行到达江陵,荆州刺史桓石康过来迎接,桓玄重新任命文武百官。

何无忌和刘道规率军打败了寻阳守将何澹之,占领城池,在这里休整之后继续西上。

桓家在荆州根深蒂固,桓玄短时间内聚拢了数万人,又重拾了信心,挟持司马德宗东征,准备收复建康。两军在峥嵘洲(位于今湖北鄂州市)相遇。刘道规不畏强敌,率先冲锋,刘毅等紧随其后,他们斗志昂扬,奋力拼杀,桓玄不敌,带着司马德宗乘船逃走。到达江陵后,桓玄已经众叛亲离,这时候益州刺史毛璩(qú)派人送信给桓玄,引诱他到巴蜀,桓玄果然撇下司马德宗,往巴蜀逃去。

桓玄走到枚回洲(今湖北荆州市荆州区故江陵县城西长江中)的时候,恰好遇到了毛璩的侄孙毛祐之和参军费恬,他们立即命人向桓玄的船只放箭,桓玄的人马纷纷中箭倒下,益州督护冯迁跳上桓玄船只,力斩桓玄。桓玄死时三十六岁,做皇帝不到一年。他们把桓玄的人头和桓玄的儿子桓昇送到建康,桓昇被绑到闹市斩首,桓玄的人头则被挂在朱雀桥上示众。后刘毅又率军消灭了桓玄的残余势力。

元兴四年(405)三月十三日,刘毅护送司马德宗到达建康。朝廷下诏,任命司马德文为大司马,刘裕为侍中、车骑将军、都督中外诸军事,兼徐、兖二州刺史;刘毅为左将军;何无忌为右将军、豫州刺史,兼督豫州、扬州五郡诸军事;刘道规为辅国将军、督淮北诸军事、并州刺史。

刘裕坚决拒绝了朝廷的封赏,要求返回京口。朝廷再三挽留,但刘裕去意已决,没办法,朝廷改任刘裕为都督荆、司等十六州诸军事,兼兖州刺史,镇守京口。