1597年(万历二十五年)正月,丰臣秀吉命令加藤清正、小西行长、岛津义弘等率十五万大军再次侵略朝鲜。日本侵略者在这次进犯之前,利用朝鲜政府内部党派之争,进行反间,陷害李舜臣。朝鲜政府中了日本的反间计,罢免了李舜臣的水军统制使职务,改派懦弱无能的元均继任。日本侵略者引诱元均离开闲山岛。元均中计,率领战船向釜山开去,打算在那里迎击倭军。日本侵略者准备了五百多只战船和五万名陆军,等候朝鲜水军赶来,以逸待劳。当元均到达釜山以南的绝影岛时,天色已晚,军士很疲乏,粮食柴火的供应都准备得不够,又遇风浪大作,没有停泊避风的处所。这时日本船舰突然包围袭击,大败朝鲜水军,元均被杀。接着倭军西进,占领了李舜臣苦心经营的闲山岛要塞,然后十几万倭军从水陆两方面涌向垂涎已久的富庶谷仓——全罗道,进占了全罗道的重镇南原,并且一度进犯光州、罗州、全州、海南、顺天等地。到9月,倭军又向北攻入忠清道的稷山,企图由此进犯汉城,汉城岌岌可危。
明朝又派遣大军去支援。这次以兵部尚书邢玠任蓟辽总督,杨镐经略朝鲜军务,麻贵任备倭总兵官。援朝军队,北方的从蓟州镇、保定府、辽东镇、宣府镇、大同镇①等地调来,南方的从南直隶、浙江、福建、广东、四川各省调来,还有西南苗族兵士一万五千人。日本侵略军鉴于第一次入侵时遭受的打击,不敢贸然深入内地,企图先在南部沿海一带立足,再逐步北进。加藤清正据东南部庆尚道的蔚山,小西行长据西南部全罗道的顺天,岛津义弘据蔚山、顺天之间的泗川,东西呼应,南面与海上联系。1597年(万历二十五年)年底,杨镐和麻贵会同朝鲜都元帅权慄率兵先攻加藤清正,用轻骑诱加藤清正陷入埋伏,斩首四百余,俘虏了他部下的勇将。加藤清正不能抵挡,退守蔚山以南的岛山。岛山地势高陡,筑有石城,城外围绕着三层栅栏。明军虽然仰攻困难,游击陈寅却领兵连破外围两道栅栏,第三栅眼看即将攻下。倭军被围十昼夜,水源断绝,粮食也吃完了。于是,倭军假称准备投降,请求缓攻,实际是缓兵之计,等待小西行长的援军。杨镐指挥不当,又想活捉加藤清正立大功,放松攻城,耽误了时机。不久,小西行长率水军来救,倭船遍竖旗帜,蔽江而下,虚张声势以恫吓明军。杨镐因明军当时没有水军,缺乏海上支援力量,心慌胆怯,不及下令,自己便逃走,全军溃散,退到汉城。这次围攻加藤清正的战斗集中了中朝双方大量兵力,经过一年的准备,结果大败,死亡将近两万人,辎重也丧失很多。杨镐还向朝廷报捷,说只死亡百余人,被部下丁应泰揭发。明朝罢免了杨镐的职务,听候处罚,改派天津巡抚万世德代替他的职务。
朝鲜方面,在元均大败之后,重新起用李舜臣为水军统制使。朝鲜政府曾计划放弃水军,全力进行陆上战斗。李舜臣坚持反对,他说:“以前亏得有水军,才阻挡住敌人不能进犯全罗、忠清两道。如果现在废除水军,敌人一定高兴,他们将要从全罗进逼汉江。”在李舜臣坚持之下,朝鲜决定逐步恢复水军的力量。1597年(万历二十五年)9月,朝鲜水军实力尚未恢复之前,李舜臣便在珍岛东北的鸣梁海峡和倭军展开了战斗。这时李舜臣只有十二只船,敌人用超过其十倍的兵力一百三十多只船包围了李舜臣。李舜臣因众寡悬殊,避免正面战斗。他一方面让许多难民的船只假装舟师按次序撤退,以迷惑敌人。他指挥部下向敌阵突进,他的战船首先冲入敌阵,向敌人的主舰大楼船进攻,一边射箭,一边放铁铳,目的是为了把敌船引诱到暗放铁索的地方,以便乘退潮的机会打击敌船。倭船不知,结果大部分碰在海里的铁索上,不能转动,以致大败。李舜臣以十二只战船歼灭四千多敌人,打破了倭军水陆并进的计划,再度保障了全罗、忠清两道的安全,争取了重整水军的时间,也给明朝水陆增援部队的行动创造了有利条件。
1598年(万历二十六年),明朝派遣了江南水军来到朝鲜。邢玠从汉城分兵四路,即东路大将麻贵,中路大将李如梅(后改为黄一元),西路大将刘,水路大将陈璘。他们各有防守范围,相机协同进攻。这年10月,陈璘率水军协助西路明军作战,乘夜间潮涨的时候进攻小西行长所在的曳桥。陈璘亲自督战,从船上发大炮,小西行长住的房子中了三颗炮弹,倭军慌乱逃窜。陆地上的明军听到海面上的炮声,又见城中火起,都非常振奋,准备配合攻城。但刘因为和陈璘不和,不按预定计划从陆路配合进攻,以致未能夺取即将攻克的敌人据点。忽然夜潮退去,明军有二十余只船搁浅。倭军出兵围击,反而都被烧毁。东路、中路的明军牵制倭军,相机出击,也都有胜有败。
倭军受到中朝军队的阻击,被困在朝鲜,毫无进展。被迫进行非正义战争的日本士兵,士气本不旺盛,早在1592年(万历二十年)第一次入侵时,就有不少士兵投降朝鲜。第二次入侵后,朝鲜实行清野战术,倭军得不到粮食,和本国的联系又因朝鲜水军控制海面而受到威胁。旷日持久,倭军士气日益低落。日本国内人民也反对丰臣秀吉的穷兵黩武。1598年(万历二十六年)8月,丰臣秀吉在侵略战争挫败和人民反对中懊丧病死。倭军在被迫撤退前,仍企图做最后挣扎。中朝军队在海上给了倭军最后的歼灭性打击。
注释
① 蓟州镇,今河北蓟县。保定府,今河北保定。辽东镇,今辽宁北镇。宣府镇,今河北宣化。大同镇,今山西大同。