前秦消灭前燕以后,把矛头指向东晋,南北关系日趋紧张。前秦建元八年(即东晋咸安二年,372年)冬,苻坚派遣将领率军攻占东晋梁、益二州。建元十二年(376年),前秦又先后消攻灭前凉与代国,统一了北方。建元十四年(378年),前秦分兵两路,同时开辟了东西两个战场,从而揭开了秦晋之间大规模战争的序幕。
在西部战场,苻坚之的儿子苻丕负责指挥各项军事行动,率领步、骑兵七万人进攻襄阳。与此同时征虏将军石越、京兆尹慕容垂、领军将军苟池等共同率领步骑兵十万从三个方向回苻丕会合。秦兵进抵汉水北岸,东晋梁州刺史朱序认为秦兵没有舟楫,难以过江,便不加防备。当听说石越已率领五千骑兵浮渡汉水时,他才惶忙地命令放弃外城,退守中城。秦军十倍于晋军,但由于苻丕不进行强攻,也由于襄阳军民顽强抵抗,直到次年二月,秦军才攻克襄阳,俘虏了朱序。在东部战场,前秦后将军俱难、右禁将军毛盛等率领步骑兵七万进攻淮阴(今江苏清江西南)、盱眙,扬武将军彭超瘁军进攻彭城(今江苏徐州),并负责指挥东部各项军事行动。襄阳陷落后,东晋兖州刺史谢玄出兵救援彭城,但只是救出彭城的兵众,彭城、淮阴、盱眙随即相继失守。建元十五年(379年)五月,秦兵六万包围三阿(今江苏宝应县),三阿距离广陵不过百里,建康受到危胁。东晋执政谢安命令谢石带领水军驻防涂中(今安徽滁县、全椒一带),又派谢玄援救三阿。谢玄战胜俱难、彭超,收复了盱眙、淮阴,秦军退守彭城。此后,西部战场两军又起战事。建元十七年(381年)十一月,秦荆州刺史都贵派兵20000进攻竟陵(今湖北潜江),结果被晋荆州刺史桓冲部下打败,死了7000,被俘万人。次年九月,桓冲派兵攻打襄阳,焚烧践踏了沔水以北的屯田稻谷,掠取六百多民户而去。
淝水之战早在建元九年(373年),王猛临终时,曾语重心长地劝诫苻坚要防备鲜卑人、羌人,不要进攻东晋,因为东晋政权得汉族人心,上下相安,局势稳定,而前秦国内的鲜卑、羌族上层分子表面上唯唯诺诺,其实心怀叵测。但是苻坚未把王猛的话放在心上,当军事上取得节节胜利后,骄傲轻敌之心陡长,统一天下之志更加强烈。太元七年(382年)十月,苻坚召集大臣举行开会,讨论大举进攻东晋之事。苻坚踌躇满志地说:“我承继大业将近30年,四方大体平定,惟有东南一隅不投降,我准备率领97万大军亲征,你们以为如何?”秘书监朱肜立即随声附和说:“陛下应天顺时,恭敬地执行天的惩罚,率领百万之众,必然有征而无战,马到成功!”但是左仆射权翼却反对说:“如今晋朝王室君臣和睦,上下同心,执政谢安、桓冲皆是杰出人才,所以不要轻举妄动。”太子右帅石越也说:“东晋既有长江之险,又无君昏臣叛之象,暂时还不适宜出兵。”苻坚虽然扬言“吾之众旅,投鞭于江,足断其流”,但见群臣意见不一,只好暂不论。退朝后,苻坚留其弟阳平公苻融继续商议。苻融也劝谏苻坚,苻坚发怒说:“你也如此,我还能和谁商量?我有强兵百万,粮食、器仗如山,虽不敢自称为明君,但也决非是庸主,而今乘屡胜之威,攻击垂亡之国,岂有不克之理!”苻融哭泣说:“晋不可伐,理由很充足。臣不但忧虑伐晋劳而无功,更忧虑国内发生变故。陛下宠待觧卑、羌、羯、使布满京畿,如果倾国南下,一旦京畿风云变幻,将追悔莫及。臣见识肤浅,诚然不足采纳,但王猛是一时奇士,他临终之言不能不重视。”苻坚仍然不从。后来,朝臣进谏的人很多,苻坚的太子苻宏、宠章的张夫人、幼子苻诜和苻坚尊重的僧人释道安都来劝阻,但苻坚主意已定,谁的话也听不进。这时,京兆尹慕容垂装出一副忠心耿耿的样子对苻坚说:“弱并于强,小并于大,是势所必然。陛下圣武,有强兵百万,猛将满朝,而江南蕞尔之虏,岂可留给子孙。陛下圣心独断,何必广询朝臣以乱圣虑!”苻坚十分高兴地说:“能与联共定天下的只有你一人而已!”
建元十九年(383年)五月,桓冲发兵十万进攻襄阳和蜀,符坚派其子苻等率兵抵御,桓冲畏惧秦兵,便退回上明(今湖北松兹西北)。这年七月,苻坚下达大举进攻东晋的诏令,规定民户十丁抽一,富家子弟年20以下身强力壮者均授予羽林郎,同时征用州郡公私马匹。诏令中又说:“其以司马昌明(即东晋孝武帝)为尚书左仆射,射安为吏部尚书,桓冲为侍中,势还不远,可先为修曼府第”。这就是说,秦军尚未出发,蔡坚就认为必胜,准备俘虏东晋君臣,预先为他们修建府第。八月,苻坚以苻融督张蚝、慕容垂等步骑25万为前锋,以姚苌督梁、益诸军事,苻坚随后从长安出发。当他到达项城(今河南项城)时,凉州兵才抵达咸阳,蜀、汉兵才从长江顺流东下。幽、冀兵进至彭城,只有苻融等所领的30万军队进至颍口(今河南颍上),前秦全军有步兵60万、骑兵27万,前后相望,绵延千里,东西万里,水陆并进。
大敌当前,东晋急命谢石为征讨大都督、谢玄率领北府兵为前锋都督,与谢琰、桓伊等共率领八万之众抵抗秦军。又另派将领胡彬率领五千水军增援寿阳(今安徽寿县)。这时,建康城中人心惶惶。谢玄也不放心,出兵前又问计于谢安,见状谢安却显示出若无其事,悠然出游山中的别墅,与谢玄下起围棋,大家见状,才宽下心来。十月,苻融指挥秦军攻下寿阳,擒获晋将徐元喜等人。晋将胡彬听说寿阳陷落,于是退据硖石(今安徽寿县西北)。苻融一面进攻硖石,一面派将军梁成率领五万军队屯守洛涧(今安徽淮南市东淮河支流洛河),截断胡彬的退路,也遏制在东面的援军。谢石、谢玄率领的大军果然忌惮秦军,在距离洛涧25里处停了下来。胡彬困守峡石,粮食已经吃光,派人送信向谢石告急求援,送信人被秦军捉住,押送苻融。苻融见信上写道:“今贼(指秦兵)盛粮尽,恐怕不能再见到大军”,不禁大喜,派使者驰报苻坚说:“贼军(指晋军)弱,容易擒获,但恐以后逃逸而去,应该迅速进攻。”苻坚闻报,便把大军留在项城,只带领轻骑八千,急忙赶赴寿阳。苻坚到达寿阳,并没有立刻发动进攻,而是派东晋降将朱序到谢石军中劝降。朱序却为晋军献策说:“如果百万秦军都开到前线,势难为敌,而现在全部军队尚未集结,应该快速出击,只要打败其前锋,挫折其锐气,就可以击溃秦兵。”谢石开始因为听说苻坚在寿阳,非常害怕,本来已经决定不主动出击,这时接受了朱序的建议。十一月,谢玄命部将刘牢之率北府精兵五千人急行军到洛涧,秦将梁成严阵以待。刘牢之乘夜挥军抢渡洛水夜,袭梁成军营,临阵斩梁成等十员将领,又分兵截断退路的渡口,秦兵步骑一时崩溃,落水而死者一万五千多人。刘牢之继而纵兵追击,俘虏秦将王显等人,缴获了大量秦军丢弃的军资器仗。洛涧之捷后,晋军水陆并进,声势大振。苻坚在寿阳城上亲见晋军部阵严整,又远眺八公山(在寿县城北四里)上影影绰绰的草木,以为都是晋兵,不觉面现惧色,回头对苻融说:“这也是一支劲敌,怎么能说是弱旅呢!”
秦、晋两军夹淝水布阵。晋军意在速战,谢玄派遣使者向苻融提议说:“将军领兵远道而来,却在岸边列阵,这是作持久战之计,并非作速战打算。如若将军能够稍稍往后移动阵地,使我军渡淝水,以决胜负,不更好吗?”秦军诸将认为,我众敌寡,不如遏制不使其过河,是万全之策。苻坚却说:“只要引兵稍退,乘晋兵才到河中间,我则以铁骑突然出击,没有不获胜的道理。”苻融也以为正确,便指挥军队退却。秦军一退而不能复止,被迫当兵的汉族和各少数民族人民乘机逃跑。这时,朱序在阵后大喊:“秦兵败了!秦兵败了!”不明真相的兵众大乱,更加狂奔起来。谢玄、谢琰、桓伊等率领晋军渡河猛攻,苻融飞骑驰入溃退的队伍中,想阻止秦兵溃退,结果坐骑被乱兵冲倒,摔下马来,被追赶的晋兵杀死。晋军一鼓作气,追击秦军至寿阳三十里外的青冈。秦兵大败,自相蹈藉而死者,蔽野塞川。逃跑的人风声鹤唳,都以为是晋兵追来了,昼夜不敢休息,草行露宿,加以饥冻,死去的人有十七八是苻坚在逃路中身中流箭,挣扎着回到淮北,见到所宠幸的张夫人,潸然泪下说:“我今日还有何面目治天下呵!”
苻坚有志于统一全国,但时机尚未成熟,前秦国内民族矛盾仍然比较尖锐,统治秩序尚未稳定,近百万的军队其实是一群乌合之众。淝水之战败后,鲜卑贵族慕容垂、慕容和羌族贵族姚苌等纷纷摆脱苻坚的控制,貌似强大的前秦王朝顷刻陷于瓦解。