早在公元373年,前秦丞相王猛临终时,曾语重心长地劝诫苻坚要防备鲜卑、羌人,不要进攻东晋。因为东晋深得汉族人心,上下相安,局势稳定,而国内的鲜卑、羌族上层分子表面上唯唯诺诺,其实居心叵测。但是苻坚没有把王猛的话放在心上。当军事上取得节节胜利后,他的骄傲轻敌之心陡长,统一天下之志愈盛。
公元382年10月,苻坚召集大臣会议,讨论大举进攻东晋之事。苻坚虽然扬言他的军队把马鞭投到长江,就可以把江水断流,但发现群臣意见不统一,只好暂且罢朝。
退朝后,苻坚留下他的弟弟阳平公苻融,继续商议。苻融也不赞成出兵。苻坚发怒:“你都这样,我还能跟谁商量?我有强兵百万,粮食武器堆积如山,而今乘我屡胜之威,攻击垂亡之国,岂有不克之理!”苻融哭泣着说:“不可伐晋,理由很充足。我不但忧虑伐晋劳而无功,更忧虑发生内乱。您对那些少数民族,恩宠有加,让他们布满京畿,如果倾国南下,一旦京畿风云变幻,就会追悔莫及的。我的见识短浅,意见不值得您采纳,但王猛是一代奇士,他的临终之言不能不重视。”苻坚没有听从弟弟的劝告。
公元383年5月,东晋桓冲发兵十万进攻襄阳和蜀地。苻坚派儿子苻叡等领兵抵御。桓冲害怕秦兵,便退回上明(今湖北松滋西北)。这年7月,苻坚颁下大举进攻东晋的诏令。诏令规定民户十丁抽一,富家子弟年岁二十岁以下身强力壮者授予羽林郎,征用州郡公私马匹。8月,苻坚以苻融督张蚝(háo)、慕容垂等步骑二十五万为前锋,以姚苌督梁、益诸军事。苻坚随后从长安出发,当他到达项城(今河南项城),凉州兵才抵咸阳,蜀汉兵才从长江顺流东下,幽冀兵进至彭城,只有苻融等所领的三十万军队进至颍口(今河南颍上)。全军有步兵六十万、骑兵二十七万,旗鼓相望,前后千里,东西万里,水陆并进。
大敌当前,东晋任命谢石为征讨大都督,谢玄领北府兵为前锋都督,与谢琰、桓伊等共同率领八万之众抵抗秦军,又另派将领胡彬领五千水军增援寿阳(今安徽寿县)。这时,建康人心惶惶。谢玄也不放心,出兵前又向谢安问计。谢安却若无其事的样子,悠然出游山野,与谢玄下起棋来。大家这才宽心。
383年10月,苻融指挥秦军攻下寿阳,擒获晋将徐元喜等人。晋将胡彬听说寿阳陷落,退据硖(xiá)石(今安徽寿县西北部)。苻融一面进攻硖石,一面派将军梁成率领五万军队屯守洛涧(今安徽淮南市东淮河支流洛河),截断胡彬退路,也遏制东面的援军。谢石、谢玄率领的大军,果然害怕秦军,在距离洛涧二十五里处停了下来。胡彬困守硖石,粮食已经吃光,派人送信向谢石告急求援。送信的人被秦军捉住,押送苻融。苻融见信上写道:“今秦兵气盛,我部粮尽,恐怕再也见不到大军了。”不禁大喜。于是,派使者骑马飞奔,报告苻坚,让他迅速进攻。苻坚闻报,便把大军留在项城,只带领轻骑八千,急忙赶赴寿阳。
苻坚到达寿阳,没有立刻发动进攻,而是派东晋降将朱序到谢石军中劝降。朱序却悄悄地为晋军献策:“如果百万秦军都开到前线,势难抵挡。而他们现在全部军队尚未集结,应该快速出击。只要打败其前锋,挫其锐气,就可以击溃秦军。”谢石因为听说苻坚在寿阳,甚为害怕,本来已经决定不主动出击,这时接受了朱序的建议。
11月,谢玄命部将刘牢之率北府精兵五千人急行军到洛涧。秦将梁成正严阵以待。刘牢之乘夜指挥军队抢渡洛水,袭击梁成正军营,临阵斩梁成等十员将领,又分兵截断退路的渡口。秦兵步骑一时崩溃,落水而死的就有一万五千人。刘牢之继而纵兵追击,俘虏秦将王显等人,缴获了秦军丢弃的军资器仗。
洛涧大捷后,晋军水陆并进,声势大振。苻坚在寿阳城上目睹晋军布阵严整,又远眺八公山(在今安徽寿县城北四里处)上影影绰绰的草木,颇似人形,以为都是晋兵,不觉骇然,面现惧色,回头对苻融说:“这也是一支劲敌,怎么能说弱呢!”
秦晋两军夹淝水布阵。晋军想速战速决,谢玄便派人向苻融提议说:“将军领兵远道而来,却在岸边列阵,这是作持久战之计,并非作速战打算。如果将军能够稍稍往后移动阵地,使我军渡过淝水,以决胜负,不更好吗?”秦军诸将认为,我众敌寡,不如遏制住不让晋军过河,才是万全之策。苻坚却说:“只要引兵稍退,乘晋兵才到河中间,我则以铁骑突然出击,没有不获胜的道理。”苻融也认这个理,于是指挥军队退却。没料到,秦兵一退就制止不住了,被迫当兵的汉族和各少数民族人民乘机逃跑。这时,朱序在阵后大喊:“秦兵败了!秦兵败了!”不明真相的兵众更加狂奔起来。谢玄、谢琰、桓伊等率领晋军渡河猛攻。苻融飞骑驰入溃退的队伍中,想阻止秦兵溃退,结果坐骑让乱兵冲倒,摔下马来,被赶到的晋兵杀死。晋军一鼓作气,追击秦军至寿阳三十里外的青冈。秦兵逃命中互相踩踏,尸体留下一大片。那些逃跑中的士兵听到风声鹤唳(lì),都以为是追兵将至,日夜不敢休息,风餐露宿,加上又饿又冷,一大半死了好多。
苻坚在逃跑中身中流箭,挣扎着回到淮北,见到他所宠幸的张夫人,潸然泪下,说:“我今日还有何面目治天下啊!”