姚洸於是便佈置諸軍應戰。使趙玄將兵二千南屯於柏谷塢,石無諱東屯於鞏城,與洛陽犄角。趙玄哭泣說道“我受三帝重恩,不惜以死報國。只恐明公不用忠臣之言,爲奸人所誤,後悔無及啊!”
檀道濟等繼續前行,成皋、虎牢不戰而降。檀道濟使毛德祖出戰柏谷塢,自己攻鞏城。石無諱懼怕檀道濟大名,又看重兵前來,不戰而逃。趙玄與毛德祖戰,因衆寡懸殊迅速落敗,其衆被殺得殺,逃的逃,所剩無幾。趙玄猶揮刃力戰不已,身被十餘創,被圍數重。趙玄賬下小將蹇鑑拼命殺入圍中來救,趙玄已重傷倒地,對蹇鑑說道“我受傷太重,你快走吧!”蹇鑑回道”若將軍不濟,我義不獨活。”挺身保護趙玄力戰而死。毛德祖爲趙玄忠義所感,呵斥諸軍士退開,說道“將軍如此忠於國家卻不受信任,若能歸降於我朝,定當重用。”趙玄說道“恕我有傷不能行禮。將軍請借一步說話。”毛德祖進前幾步。“呸”,趙玄朝其臉上唾了一口,罵道“我趙玄豈是投降求榮之人!”毛德祖大怒,揮刀將其斫殺。
檀道濟統軍進圍洛陽,姚禹早已偷溜出城投奔了道濟。姚洸始知自己中了奸計。數萬大軍壓城,救援又經久不到,沒三天姚洸就撐不住了,舉城而降。當時境內羌族有四千餘人,將士們想要全部坑殺,收其屍以爲京觀。檀道濟說道“我們興仁義之師,爲的是伐罪弔民。羌漢同爲天下之子民,絕不可濫殺。”除了秦宗室十餘人外,檀道濟盡皆釋放。民衆大悅,秦人爭相歸降。姚益男與閻生畏懼晉軍勢衆,本就故意遲緩進軍,半道聞城降就退了回去。
收復洛陽,劉裕大喜。而此時西北的兩個小政權西秦、仇池也派使者向晉稱臣,願效兵助攻後秦。
在晉軍攻洛陽時,秦主姚泓令鎮守蒲阪的幷州牧姚懿南屯陝津聲援洛陽。姚懿此際卻有了趁亂襲長安的想法,決定誅殺東平公姚紹,廢姚泓自立。他先散谷賜給河北夷、夏諸部落,準備樹私恩,然後收兵南下。常侍張敞諫道“殿下身份爲母弟,居北方重鎮,安危休慼,當與國共之。如今吳賊逼陵,洛陽已陷。國家形勢岌岌可危。殿下不出兵相救,反而同室操戈,骨肉相殘。臣恐怕覆巢之下,難有完卵啊!”侍郎左雅也諫道“糧谷乃國之本,殿下無故將其散給難以取信之夷民,怕得不償失啊!”姚懿大怒,將兩人鞭打至死,即日稱帝舉兵。
消息傳來後,姚泓與姚紹商議應對之策。姚紹道“姚懿無功於國,也敢覬覦皇位。聽聞他在蒲阪隨意誅殺,人人懷畏。我敢斷定他此行必不能成功。我們只需聲其罪狀,傳檄諸城,諭以逆順,料諸城定無響應者。姚懿既被孤立,討之將不難。”姚泓讚道“叔父之言,真乃社稷之計也!”
當下姚弘就傳檄諸城。姚懿徵調諸城兵,果無應者。蒲阪東北有處匈奴堡,是秦魏之邊境,爲寧東將軍姚成都鎮守。姚懿派人將自身佩刀贈送姚成都,並卑辭引誘,想用匈奴堡處的穀物作軍糧。姚成都斬殺使者拒絕。姚懿大怒,使麾下勇將王國率兵士一千攻擊匈奴堡,姚成都親自出成應戰,於陣生擒王國。之後姚成都派使者責讓姚懿“明公以至親當國家重任,國危不但不救,反而有非分之想,我不日將舉義兵,與公相見於河上!”
姚泓派姚紹領大軍而出,於路徵集軍士。姚懿渡河後與姚紹於定城相遇。姚懿於義爲不順,諸軍士亦不用命,與姚紹大軍兵刃始接便即敗退。姚懿收合散兵而逃,回到蒲阪後發現城門大關,望城上兵士,盡皆面生。姚懿知有變,但仍然喊道“速開城門!追兵快到了。”這時城上出現一人,輕蔑地笑道“此城已爲國家所有,叛逃之賊怎能收納。”姚懿一看是姚成都,心膽俱裂。姚紹追軍已經逼近,隨從軍士們大多散去,姚懿僅與心腹數十擇路而逃。他沒有想到姚成都早已分部軍士埋伏於各路,伏兵突起,攔住了他們的去路。姚懿所乘馬正經過一坑,又因受驚,將其掀翻在地。姚懿被生擒,送入長安斬首。之後姚泓使尹昭鎮守蒲阪,姚成都便再次回到匈奴堡。
姚懿之亂平定,姚泓才稍微能鬆口氣,卻又傳來了姚恢起兵的消息。姚恢起兵前向文武官員們說道“皇帝聽信奸臣之言,不讓我入兵勤王,反而將我等棄於荒邊。此行我定要清除君側之惡,輔佐朝政。諸君謂我是能還是不能!”羣臣多持贊同。於是數萬大軍從安定出發,一路攻城殺將,直至郿城。
姜紀此時向姚恢諫道“晉賊逼陵,國家重兵皆在東方,長安空虛。若使我將兵於此牽引住敵兵,公另帶輕兵急攻長安,必能克之。到時號令天下,姚泓無能爲矣。”姚恢不以爲然,“郿城糧儲充實,不若先攻下此城再圖進取。”於是姚恢督大軍先攻郿城,陣斬鎮西將軍姚諶。長安大震,姚泓急召姚紹還軍,又使姚贊留少量兵力鎮守潼關,帶大軍來援。姚恢還未至長安,姚紹、姚贊等已至。
長安大軍集結,姚恢兵士們都產生了畏懼之心。在姚紹、姚讚的夾擊下,姚恢大敗,姚恢也于軍陣中爲衆兵亂槍刺死。姚泓已失弟弟姚懿,這次又失了哥哥姚恢,他抱著姚恢屍體大哭“賢兄,都是我不聽忠良之言,害了你啊!”姚泓想到害自己骨肉相殘都是樑喜這奸臣所爲,大是惱怒,立即令人將樑喜五馬分屍。
在攻克洛陽後,417年正月,王鎮惡領軍繼續向澠池前進。他令毛德祖攻擊蠡吾城,順利克下並生擒太守尹雅。夜晚,乘守者盡醉,尹雅掙脫繩子,殺掉數名守者而逃。