18日上午,“陳慶瑜”號和“陳平重”號艦又侵入甘泉島附近海麵,駛近中國407號漁輪。當天深夜,南越當局增派的護航艦“怒濤”號闖入西沙永樂群島海域,與原來的3艘軍艦會合在一起。19日清晨,南越“李常傑”號、“怒濤”號艦從廣金島以北海麵向中國海軍艦艇編隊接近;“陳慶瑜”號、“陳平重”號艦從羚羊礁以南外海向琛航、廣金兩島接近。南越軍隊妄圖憑借其軍艦的優勢,吃掉中國海軍巡邏艦艇,強占西沙永樂群島。

針對南越軍隊的侵略企圖,廣州軍區根據中央軍委的指示,要求海上指揮所和各艦艇編隊提高警惕,在與南越侵略軍進行說理鬥爭的同時,在軍事上采取相應措施;如果南越軍隊敢於發動突然攻擊,立即進行自衛反擊。

這時,南越“李常傑”號艦依仗裝備優勢,向著中國海軍396編隊猛衝過來。396號、389號艦上的指戰員們,麵對噸位4倍於己的南越軍艦毫不示弱,繼續前進,嚴令南越軍艦迅速離開。“李常傑”號艦上的南越官兵蠻不講理,猛然掉轉船頭,撞壞了389號艦的指揮台支柱、左舷欄杆和掃雷器。接著,南越軍艦又蠻橫地從中國海軍396編隊中間穿過,抵近琛航、廣金兩島,以4隻橡皮舟運送40多名官兵登陸,並在廣金島上向中國民兵開槍射擊。早已嚴陣以待的中國民兵立即還擊,打死南越士兵1人,打傷3人。南越官兵隻好撤退,但並不甘心失敗。不久,4艘南越軍艦突然向中國海軍艦艇編隊開炮,致使中國海軍艦艇接連中彈,少數人員傷亡。中國海軍艦艇編隊忍無可忍,立即進行自衛還擊。

當時,南越的4艘軍艦,大的有1770噸,小的也有650噸,總噸位為6000多噸,裝備有127毫米以下口徑火炮50門,而且處於有利的外線陣位。但是,南越軍艦船體大,機動不便,被彈麵也大,火炮射速慢,死角大,在近距離內難以充分發揮作用。尤其南越軍隊是侵略者,政治虛弱,膽小怕死,這更是無法克服的弱點。中國海軍艦艇編隊的4艘艦艇,大的570噸,小的300噸,總噸位隻有1760噸;僅裝備85毫米以下口徑火炮16門,而且其中大部分是雙管小口徑火炮,在裝備上處於劣勢;加之處於被動的內線陣位,又是第一次遠離大陸同外國軍艦作戰,缺乏海戰經驗,形勢對中國海軍艦艇編隊十分不利。然而,中國海軍也有自己的優勢:艦艇雖小,卻機動靈活;火炮口徑不大,卻射速快;更重要的是指戰員們有英勇頑強、敢打必勝的精神。所以,隻要中國海軍艦艇編隊充分運用集火近戰的手段,以自己的長處,對付南越軍隊的短處,就能變不利為有利。

中國海軍兩個艦艇編隊高速接近南越軍艦,互相配合,各自尋找最近的目標,進行猛烈的反擊。271號、274號艇分別攻擊“陳慶瑜”號、“陳平重”號艦;396號、389號艦分別攻擊“李常傑”號、“怒濤”號艦。南越軍艦旋即拉大距離,企圖發揮其遠程火炮的優勢。但是中國海軍艦艇緊緊咬住南越軍艦不放,距離從5~7鏈縮小到2~3鏈,直至與南越軍艦接舷相戰。經過13分鍾激戰,初步扭轉了被動局麵。

南越指揮艦“陳慶瑜”號為了奪回失去的優勢,就向271號艇瘋狂開炮。271號艇在274號艇的配合下英勇還擊,壓製“陳慶瑜”號艦的主炮,並擊中了它的駕駛台和指揮通信設施,使它的通信中斷,指揮失靈。

“陳慶瑜”號艦急忙轉頭,拖著濃煙逃離。274號艇緊追不舍,越追越近。這時,“陳平重”號艦正從右側方衝過來。不料,274號艇的電舵突然發生故障,失去控製,眼看就要越過陣位,衝到“陳慶瑜”號、“陳平重”號艦中間,陷入兩麵受敵的危險境地。274號艇是立過戰功的英雄艇,在十年前的一次海戰中,曾擊沉兩艘國民黨武裝特務船,有善於處置緊急情況的經驗。在這緊急關頭,艇長李福祥當機立斷,命令轉換人力舵,並迅速趕到機艙口,指揮主機班由全速前進轉為全速倒車,使戰艇擺脫了被動局麵,重新占據了有利陣位。此時,1發炮彈擊中了274號艇的指揮台,造成通信線路損壞,指揮中斷。指揮員們隻好各自用口令和手勢進行指揮。