14時30分,南越海軍5號旗艦“陳平重”號,到達珊瑚島海域。20時,中國海軍396、389掃雷艦編隊到達與271編隊彙合。午夜時分,隨同5號艦來到的南越10號艦“怒濤”號到達甘泉島海域。淩晨時分,中國“西漁705號”船又運送了2個民兵排,共有海南軍區的四個武裝民兵排分別部屬在晉卿、琛航、廣金三島。
1月18日21時,南越總統阮文紹複電旗艦“陳平重”號部署登陸琛航島並授權還擊開火的命令。1月18日23時,由中共中央軍委和廣州軍區下發命令授權可“自衛還擊”。
1月19日6時左右,南越海軍16號艦、10號艦從廣金島西北方向,5號艦、4號艦從羚羊礁西南方向,呈鉗形態勢接近廣金島和琛航島。中國海軍各艦緊急起錨並發出戰鬥警報。7時40分,4號艦、5號艦派出南越軍開始在琛航島和廣金島(永樂群島東部,晉卿島旁)登陸,後被中國民兵逼退,南越軍黎文東中尉登島後開槍,被中國民兵打死。8時05分,南越16號艦“李常傑”號與攔截的中國海軍389號艦碰撞。中國海軍396、389編隊在廣金島西北與南越海軍16號艦“李常傑”號、10號艦“怒濤”號對峙;中國海軍271、274編隊至廣金島東南海麵與南越海軍5號艦“陳平重”號、4號艦“陳慶瑜”號對峙。9時4分,南越海軍4號艦後甲板機槍鳴槍2發,9時20分,登島越軍全部撤回。9時30分,南越艦隊得到了開火命令。9時34分,5號艦、4號艦離開琛航島海域駛向深水區,廣金島西北的16號艦、10號艦也轉向羚羊礁、甘泉島方向航行。9時58分,中國海軍281、282編隊由永興島起航駛往永樂群島海域增援。
10時20分南越海軍5號艦、4號艦展開戰鬥隊形相背而行,同時,16號艦、10號也展開成戰鬥隊形轉向中國海軍396編隊外側方向。10時23分,南越海軍軍艦炮擊中國海軍396、389編隊,越方對首先開火另有說法,為10時24分5號艦炮擊中國海軍271艇,中國海軍各艦隨即開火。中國海軍利用己方軍艦目標小,機動靈活、多為中小口徑炮的特點,貼近近戰。中國海軍271、274編隊集中火力攻擊南越海軍4號艦“陳慶瑜”號,當時誤判是對方旗艦,南越海軍也對中國海軍的指揮艦出現誤判,認為各編隊後艦為指揮艦。
至11時,南越海軍4、5號艦輕傷、16號艦重傷,戰後檢查16號艦上共有大小彈痕820處,11時25分發現中國海軍增援艦艇來到便撤離戰場,10號艦重傷失去機動力。中國海軍271、396號艦輕傷,274號艦重傷仍可作戰,389號艦重傷操縱失靈於11時50分搶灘擱淺。11時30分,中國海軍281、282編隊抵達,12時12分,攻擊南越10號艦,12時30分,南越10號艦的彈藥庫被命中爆炸,於當日14時52分沉沒於羚羊礁以南海域。
海戰以中國方麵全勝結束,中國海軍暫時取得了製海權。中國海軍收複島嶼,一舉根本解決西沙問題。1月20日,中國海軍廣州軍區增派一個兩棲偵察隊和3個連增援,陸續登上被南越占領的甘泉島和珊瑚島。出動戰機115批,401架次空中掩護,期間有兩架強—5飛機迷航未能返回陵水機場。中國軍隊以較少的傷亡迅速控製了整個西沙群島以及周邊海域。1974年1月20日下午,南越當局不甘心甘泉島、珊瑚島被中國軍隊攻占,派出“麒麟”號軍艦搭載1個營的兵力增援珊瑚島。中國人民解放軍南海艦隊和廣州軍區空軍亦作好迎戰的態勢。南越當局擔心“麒麟”號軍艦的增援有去無回,下令“麒麟”號軍艦半途返航。於是,中國收回了金銀島(永樂群島最西部)。期間,南越方麵呼籲在北部灣海域活動的美國海軍第七艦隊幹預但被拒絕。
戰後,中國獲得了對整個西沙群島及其周邊海域的控製權。而南越對西沙群島的領土宣稱及曾經的控製成為了越南戰爭之後統一越南的越南民主共和國(1976年後為越南社會主義共和國)對該地區領土要求的主要依據之一。
[15]百越:百越又稱為百越族,是居於現今中國南方和古代越人有關之各個不同族群的總稱。文獻上也稱之為百粵、粵,其分布甚廣,內部“各有種姓”,雜處於現今中國南方各地。在中國曆史上,整個廣大的江南地區,即所謂“交趾至會稽七八千裏”,在秦漢以前都是百越族的居住地,他們所使用的古越語,與中國北方所使用的古漢語也相差極大,彼此不能通話。