在义熙八年(412年)刘裕征讨刘毅时,晋宗室司马休之占据荆州。他拥兵自重,由于先前就经营过荆州,颇得当地人心。
东晋荆、扬二州,地广兵强,又是建康门户,对中央形成巨大威胁,这不得不让刘裕有吞并荆、扬的雄心。
义熙十年(414年),司马休之之子司马文思在建康招集轻侠,令刘裕十分厌恶。
后司马文思欲谋杀刘裕,被刘裕发觉,刘裕将司马文思交给司马休之,让他处置,实质就是要司马休之将其处死。
然而,司马休之并没有杀司马文思,只是上表废除其谯王爵位,并写信向刘裕道歉。这举动令刘裕对其大感不满,立刻就命江州刺史孟怀玉戒备。
义熙十一年(415年),刘裕收杀司马休之在建康的次子司马文宝及侄儿司马文祖,并出兵讨伐司马休之,自加黄钺,领荆州刺史。司马休之则上表刘裕罪状,派兵抵抗。
当时雍州刺史鲁宗之自感不被刘裕所容,故与司马休之联结,合兵反击刘裕。
刘裕前锋徐逵之初战败于鲁轨,众将除蒯恩外皆战死,刘裕大怒。
然而当他到时,鲁轨及司马文思率军在悬岸峭壁上列阵,令刘裕难以登岸,刘裕与部将胡藩率兵冒险攀登,司马文思等竟不能抵挡,刘裕就乘对方后撤的机会登岸进攻,终击溃司马休之的军队。
四月,刘裕击败司马休之军四万人,攻克江陵,直捣襄阳,荆、扬二州尽被刘裕吞并,司马休之及鲁宗之北投后秦。
自桓玄作乱以来,南方各大割据势力,全部灭亡,南方归为一统。东晋境内,全由刘裕势力统治。
刘裕在消灭司马休之后获剑履上殿、入朝不趋、赞拜不名的崇礼。次年(416年)正月,更获加领平北将军、兖州刺史、都督南秦州诸军事。
至此,刘裕一人已经都督徐州、南徐、豫、南豫、兖、南兖、青、冀、幽、并、司、郢、荆、江、湘、雍、梁、益、宁、交、广、南秦共二十二州。
义熙十二年(416年)一月,后秦皇帝姚兴死,姚泓继位,内部叛乱迭起,政权不稳。刘裕认为这是灭亡后秦的良机。
八月,刘裕以刘穆之任尚书左仆射,内总朝政,外供军粮,自己率大军分四路北伐。
九月,刘裕扺达彭城。龙骧将军王镇恶、冠军将军檀道济领兵由淮、淝转向许、洛,后秦诸屯守皆望风降附,晋军进展神速。十月,王镇恶军占领洛阳。
义熙十三年(417年)正月,刘裕留其子刘义隆镇守彭城,自率大军北上。此时北魏派十万重兵驻守河北,并以游骑骚扰晋军。
刘裕在行军中,虽常设奇阵或用大弩强槊击败魏军,但进军速度缓慢。王镇恶军由洛阳进抵潼关后,为后秦主力守险以阻,檀道济军的粮道也为秦将姚绍截断。
晋军一时处于危境。幸得当地百姓的帮助,潼关晋军才转危为安。王、檀向刘裕求援,而刘裕却为北魏军牵制,自顾不暇。
三月初八,刘裕以左将军向弥率部分兵力屯于黄河重要渡口碻璈(今山东东阿西北),自率大军进入黄河。
魏军为防止晋军于黄河北岸上陆向魏进击,也以数千骑兵沿黄河北岸跟随刘裕军西行,凡漂流至北岸的晋军人员,均被魏军擒杀。
刘裕数次派兵上岸攻击魏军,刚一登岸,魏军便逃离岸边。
为击败魏军的袭扰,刘裕命数千勇士,车百乘,由丁旿和宁朔将军朱超石率领,携带强弓利箭,登上黄河北岸,列阵而进。
魏军立即前来进攻,魏将长孙嵩率骑兵3万四面围攻晋军。晋军拼力死战,魏军被利箭射杀者甚众,死尸堆积遍地,魏将阿薄干被斩,魏兵败退走。
朱超石率宁朔将军胡藩、宁远将军刘荣祖追杀,又斩俘一千多人。四月中旬,刘裕进至洛阳,为防止魏军的袭击,在洛阳停军两个月,部署后方的防卫。
七月,刘裕全面击退魏军,河南全境被收复,刘裕大军随后进至陕城;前锋沈田子攻入武关,进屯青泥。
八月,刘裕至潼关,与诸部会合。此时,王镇恶请求率领水军从黄河入渭水,逼向长安。刘裕采纳了他的建议。
王镇恶军出发后,正值后秦恢武将军姚难由香城(今陕西大荔东)率军西撤,王镇恶跟踪追击。
姚泓率兵由霸上到达石桥(长安城洛门东北),接应姚难;以镇北将军姚疆和姚难合兵守卫泾上(今陕西高陵境),迎击王镇恶军。
王镇恶命将军毛德祖率部攻击,将秦军击败。姚疆战死,姚难逃回长安。东平公姚赞得知晋军迫近长安,便率军由定城退往郑城(今陕西华县)。刘裕大军随之逼近。
姚泓为缓解两面受敌的危局,谋划先消灭沈田子军,再抵御刘裕,于是率步骑数万急趋青泥。
沈田子军本为疑军,不过千余人,但各自为战,骁勇异常,数次出击竟使姚泓败还长安。此时,王镇恶突破潼关防线,率师直进,一举攻陷长安,姚泓率群臣投降,后秦灭亡。
义熙十三年(417年)的冬天,刘裕率晋军浩浩荡荡地抵达长安。他想在此稍作休整,经略关中,不料,传来了刘穆之病死的消息。
刘裕汇集在长安的文武将佐讨论,表露出自己继续西征的愿望以及对后方的忧虑,当时大部分人也不赞成继续北伐。
刘裕遂留其十二岁的儿子刘义真以及王修、王镇恶、沈田子等文武共守长安,自己统军南归。刘裕此举,为夏主赫连勃勃的谋臣王买德窥破心迹。
在刘裕南归不久后,赫连勃勃派军南断青泥,东扼潼关,率大军进攻长安。
在此时,留守长安的晋朝文武发生内讧,沈田子杀王镇恶,王修杀沈田子,刘义真复杀王修。刘裕得到消息,惊恐不已,急令朱龄石镇守长安,命刘义真速回。
刘义真和将士大掠财宝美女,车载南还,为夏军追及。朱龄石阵亡,刘义真单骑逃逸。
长安虽得而复失,良将劲兵损失颇多,但收复之地并未损失多少,潼关以东收复的部分关中之地和整个河南地区仍然得到刘裕的重兵扼守。
经过两次北伐,黄河以南、淮水以北以及汉水上游的大片地区,为刘裕据有。