明朝水師提督陳璘最先獲悉日軍撤退的情報,決定在海上阻擊日軍,並作出了相應的部署:
聯軍水師主力由古今島向前推進,前出到左水營、玀老島以東海麵;
在左水營建立基地和聯合作戰指揮所;
以一部兵力占領貓島(今韓國全羅南道順天東南),封鎖光陽灣(順天東南),控製露梁津海峽(今韓國慶尚南道西南),截斷小西行長所率第三軍之退路;
以一部兵力在露梁海峽及其以東海域巡邏,監視泗川、南海、固城各地日軍之動向。
駐朝鮮西部日軍接到撤退命令後,擬於萬曆二十六年(1598年)十一月十一日起開始撤退。駐順天之第二軍先撤,接著,駐泗川、南海、固城之日軍,依次到巨濟島集結,候船回國。十一日晨,第二軍部隊登船待發。其先遣部隊駛至光陽灣口的貓島附近海麵時,受到中朝聯軍水師的攔擊,退路被截斷。為了突破重圍,第二軍編組了一支衝鋒船隊,連日向聯軍水師發起攻擊,均未能奏效,隻得向駐泗川、南海之日軍求援。
此時,駐泗川、新城之日軍第五軍主力,在島津義弘率領下,已經登船,隻待漲潮出發,駛往巨濟島。島津義弘接到小西行長的求援信後,當即率領這支龐大的船隊,於十八日夜乘月色向露梁海峽疾駛,企圖突入光陽灣,解小西行長之圍。中途與從南海開來之宗智義部船隊會合。兩支船隊會合後,共有兵力萬餘人,艦船500餘艘,於午夜開始通過露梁海峽。
陳璘、李舜臣獲悉日援軍西進的情報後,立即著手調整部署,決心在露梁以西海域,包圍和殲滅救援之敵。其作戰部署是:
以副將鄧子龍率兵1000人,駕3艘巨艦為前鋒,埋伏於露梁海北側,待日船隊通過海峽後,迂回到側後發起攻擊,切斷其歸路;
以陳璘率明朝水師主力為左軍,泊昆陽之竹島與水門洞港灣內正麵阻擊,待機出擊;
以李舜臣率朝鮮水師為右軍,進泊南海之觀音浦,待機與明軍夾擊日軍。
十九日醜時,石曼子(即島津義弘)率軍萬餘、戰船500隻西上,進入露梁海明軍預伏地,遭陳璘部阻擊,調頭南下。天亮,日軍發現前有伏兵,又向北回師,遭到北岸鄧子龍部截擊。聯軍三麵合圍,在露梁海與日軍展開激戰。此時,“月掛西山,山影倒海,半邊微明,我船無數,從陰影中來,將近賊船,前鋒放火炮,呐喊直駛向賊,諸船皆應之。賊知我來,一時鳥銃齊發,聲震海中,飛丸落於水中者如雨。”(《柳成龍懲毖錄》卷二第六十八頁)聯軍駕船逼近日艦,躍上敵船,短兵肉搏。北岸鄧子龍率士卒300登上朝鮮船,奮勇衝殺,由於眾寡懸殊,鄧子龍部旋即被日船包圍。“子龍素慷慨,年逾七十,意氣彌厲,欲得首功,急攜壯士二百,躍上朝鮮船,直前奮擊,賊死傷無數。他舟誤擲火器入子龍舟。舟中火,賊乘之,子龍戰死。”(《明史?鄧子龍傳》)戰至中午,陳璘派水師副將陳蠶、遊擊季金率部來援。與此同時,中朝聯軍水師左右兩路分別從南北兩個方向,向大島以東海麵之日船隊主力,展開了猛烈的攻擊。《朝鮮李忠武公行述》對這場戰鬥作了生動的描述:“兩軍突發,左右掩擊,炮鼓齊鳴,矢石交下,柴火亂投,殺喊之聲,山海同撼。許多倭船,大半延燃,賊兵殊死血戰,勢不能支,乃進入觀音浦,日已明矣。”陳璘率主力與李舜臣夾擊日艦,施放噴火筒,焚毀日軍大部分戰船。日軍跳水登岸,又遭陸上明軍截殺,死傷大半。石曼子不支,僅率50餘隻戰船潰逃。李舜臣率朝鮮水師跟蹤追擊,進入觀音浦,再度與日軍血戰。陳璘也率中國水師趕來支援,用虎蹲炮連續轟擊,日船紛紛起火。在一片混亂之中,日軍仍垂死掙紮,拚命反擊。李舜臣領先督戰,中彈犧牲。其子秘不發喪,鳴鼓揮旗,代父指揮,繼續同中國水師並肩戰鬥。陳璘乘勝揮師西進,焚毀日軍準備撤退的船隻百餘艘,並與陸路劉綖軍夾攻順天日軍。小西行長率餘部逃脫。
露梁海戰是在近400餘年前由中朝水軍單獨進行的,以切斷敵人海上退路為目的的海上戰役。這次戰役給侵朝日軍以殲滅性重大打擊、對戰後朝鮮200年和平局麵的形成,起了重要的作用。
中朝聯軍水師在這次海戰中,密切配合,善於準確判斷情況,並根據敵情變化,及時調整部署,迅速轉移兵力,依托島岸、隱蔽待機,適時出擊。先對一部從海上撤退的敵軍實施嚴密封鎖,迫其求援;在另一部敵軍來援時。又迅速斷其退路,從南北兩個方向實施夾擊,達到了全殲敵軍的目的。
中朝兩國水師在統一指揮下,密切協同,英勇奮戰,是露梁海戰勝利的決定性因素。朝鮮水帥統帥李舜臣身先士卒,中國老將鄧子龍奮不顧身,都在激戰中英勇犧牲,犧牲後,其子仍“麾旗督戰,向前不已”,表現了中朝兩國軍隊勇敢善戰,前仆後繼,同敵人血戰到底的英勇氣概。