东晋派谢玄、谢石等率领八万人迎击秦军。谢玄、谢石等人决定趁秦军主力还没有集结的时机袭击它的前锋,一举击溃秦军。他们首先派刘牢之率兵五千在洛涧(在今安徽定远县西)打败秦军,随即指挥各路兵马乘胜前进,直逼淝水右岸,和前秦军隔河相对。秦王苻坚和他的弟弟苻融登上寿阳城,远远望见晋兵阵势非常严整,又望见前面八公山上的草木,以为都是晋兵。他对苻融说道:“敌人相当强劲啊!”说时不觉脸上流露出了畏惧的神色。
东晋和秦军在淝水对峙,晋军请求秦军稍往后退,愿意渡河同秦军决一胜负。苻坚企图趁晋军半渡的时候歼灭晋军,就答应了晋军的要求。秦军士气低沉,见前面军队移动,以为是打了败仗,又听到有人喊:“秦兵败了,秦兵败了。”军心由是大乱,士兵们都不顾苻坚的命令,一个劲儿往后退却。晋军渡河,乘势猛追,秦兵大败。溃退的秦军争先恐后,自相践踏,金鼓旗帜,抛弃满地,残尸断骸,蔽野塞川。逃命的秦兵,不敢停下来休息,听到风声、鹤唳,都以为是晋兵追到,昼夜不停地奔跑,十分之七八饿死、冻死在路上。苻坚狼狈逃回北方,苻融被晋兵杀死。晋兵取得了辉煌的胜利。
淝水之战是东晋十六国时期最大的一次战争,也是决定南北朝对立局面形成的一次战争。