但这朱序原本东晋降将,见到谢石以后,却鼓励他立即提议出兵攻秦。谢石心中有了底,增加了勇气,派刘牢之率领5000名精兵于夜间进攻溶洞的梁成大军。
梁成听说苻坚派人去谢石处劝降,以为定会成功,便放松了警惕,不是骑马打猎,就是饮酒作乐。这天夜里喝得大醉,正在熟睡之时,刘牢之率军杀入秦营。秦军没有准备,有的在梦中被杀,有的来不及穿衣就逃命。梁成慌忙组织人马反抗,但为时已晚,先是中了一箭落马,又被刘牢之砍了一刀身亡。梁成的副将王显只带着十几个人逃回。
苻坚听说梁成的5万大军被晋军几千人马杀得几乎全军覆灭,不由大怒,下令将王显斩。
正在这时,苻坚得到报告,围攻硖石的军队也被晋军打败。苻坚大惊失色,脱口说道:“想不到晋军竟然如此厉害!”
当天夜里,苻坚又听说秦军在淝水(东淝河,从合肥向西北到八公山南汇入淮河)吃了败仗,还听说晋军作战勇敢,一人顶秦军几十个人。苻坚这才后悔,自言自语地说:“早知道晋军这样厉害,寡人何必兴师动众,自寻烦恼呢!”
第二天一早,众将陪同苻坚在寿阳城头观望晋军动态,只见淝水对岸战船密布,旌旗飘扬,士兵正在练习拼杀,喊声震天,斗志显得十分旺盛。苻坚心里胆怯起来,问苻融晋军有多少人马。苻融说有十万多人。苻坚又向远处八公山上眺望,只见森林中影影绰绰埋伏着许多晋兵,不禁大惊道:“啊!山那边也是晋兵,只这一处就有十万兵马,谁知山后有多少人呢?”
苻坚回头看见朱彤,顿时来了气,当时就是他鼓动出师伐晋,于是说:“你不是说晋军兵微将寡,出师必然有征无战吗?为何晋军英勇善战,如此强大?”朱彤吓得躲到一边,哪敢吱声。
事实上,八公山上没埋伏一兵一马,只是苻坚连吃败仗,心里恐慌,居然把山上的草木误以为是晋兵,这就是成语“草木皆兵”的由来。
秦军吃了亏,变得聪明一些了,不再轻敌,坚守不出,专等后续大军到来。而晋军谢石、谢玄最怕秦军大军赶到。谢玄想了一个激将法,派人给苻融送去一信,大意是:将军率百万之众攻打晋国,只洛涧一战便龟缩不前,有失秦国大将风度。如果敢交战,就退后一箭之地,腾出一块交战之地,让晋军渡过淝水,再决胜负。
苻融拿不定主意,就找苻坚商量。苻坚马上有了主意,说:“兵不厌诈,我军虽然后撤,但等晋军渡河之时,再迅速反击,把晋军消灭在淝水之中。”
太元八年(公元383年)十一月,这天早晨,是双方约好决战的时间。苻坚亲自指挥战斗,手向空中一挥,大声命令:“撤!”此令一下,秦军转过身去,竞相撤退。淝水东岸的谢石、谢玄见状,立即命令晋军渡河。胡彬率领一万名水军乘船由深水渡河,刘牢之率领一万名兵士乘铁骑由浅水处涉水前进。
这时,苻坚认为反击时刻到了,便命令秦军杀回。但秦军大多是强迫入伍的老百姓,谁也不愿替秦王送死,只是一个劲儿地后撤。朱序又趁机大喊:“秦军打败了!”于是有人跟着喊秦军败了。不明真相的兵士闻听,拼命逃窜,自相践踏而死伤者难以计数。
苻坚已无能为力,骑着马从荒野小路逃跑,听到风声和鹤群的叫声,也以为是晋兵追来了,这就是“风声鹤唳”的来历。
淝水之战,前秦军被歼和逃散的共有70多万,唯有鲜卑慕容垂部的3万人马尚完整无损。苻坚统一南北的希望彻底破灭,不仅如此,北方暂时统一的局面也随之解体,再次分裂成更多的地方民族政权,鲜卑族的慕容垂和羌族的姚苌等其他族贵族重新崛起,各自建立了新的国家,苻坚本人也在两年后被姚苌俘杀,前秦随之灭亡。此战的胜利者东晋王朝虽无力恢复全中国的统治权,但却有效地遏制了北方少数民族的南下侵扰,为江南地区社会经济的恢复和展创造了条件。淝水之战也成为以少胜多的著名战例,载入军事史,对后世兵家的战争观念和决战思想产生着久远影响。
淝水之战确定了南北朝的长期分裂。之后南朝宋的刘裕于公元417年入长安,但是部队将领在关中生内讧,得而复失。450年北魏的拓跋焘从黄河北岸一路穿插,推进到长江北岸,但是北人难以适应南方气候,将士染病甚多,不能久驻。侯景反复叛变,先叛北齐而投奔南梁,后又叛梁自立为主,也曾于公元548年陷建康,不久即为部下所杀,都去统一全国的目标甚远。直到公元589年才有继承北周的隋文帝杨坚的“天下大同”“区宇一家”。至此已去淝水之战206年。