1592年12月,应朝鲜政府的请求,明朝派大将李如松率领4万军队援朝,受到朝鲜人民的欢迎。次年1月,朝、明联军经过激烈战斗后收复平壤;4月19日,光复汉城,将侵略者赶到釜山沿海一带。日本遭受沉重打击后,提议和谈,妄图争取时间卷土重来。由于日方坚持无理要求,迁延三年之久的和谈以破裂告终。
1597年2月,丰臣秀吉派遣14万日军再次侵略朝鲜,水陆并进,但把重点放在海上。当时,由于党争,李舜臣被解职,统制水师的是昏庸无能的元钧。7月,固城海面一战,元钧失败被杀,大本营闲山岛落入敌手。8月,朝鲜政府迫于压力不得不重新起用李舜臣,但朝鲜水师仅剩12艘战船和120余名战士。李舜臣和水师将士发扬高度爱国热情和献身精神,誓死杀敌。他们充分利用珍岛东南鸣梁海峡(涨潮时有巨响如鸣)的有利地形,暗设两道铁索,使敌舰能进不能出(退潮),以巧制胜,竟以12艘战船和120余名士兵击毁敌舰300多艘,歼敌4000余人,创造了海军战史上以少胜多的杰出范例。
1598年7月,明朝政府派陈瞵和邓子龙率水军援朝,与李舜臣将军的水师并肩战斗。8月,丰臣秀吉病死,遗嘱吩咐从朝鲜撤军。与此同时,朝明联军在陆上进击日军在南方沿海的重要据点蔚山、泗州和顺天,敌军不支企图从海上逃走。11月18日,朝明联合舰队驶往露梁海面(南海郡西北)迎敌,击沉敌舰300多艘,歼敌万余,给侵略者以毁灭性打击。在这次海战中,李舜臣击毙日军大将,打退包围明军统帅陈瞵的敌舰。明军70岁老将邓子龙坐的船不慎起火,李舜臣驶舟来救,左胸中弹。他把战旗交给侄儿代施号令,嘱咐不许声张。名将李舜臣和邓子龙都在这次海战中壮烈牺牲,用鲜血谱写了一曲战斗友谊的颂歌。壬辰卫国战争终于以朝鲜人民的最后胜利结束。