被我军击沉的南越海军10号“怒涛”舰
看到占不了什么便宜,南越军舰收回了登岛的士兵,开向外海兜了个圈子(使中方舰艇处于其大口径火炮的射击范围之内),展开战斗队形冲过来,企图将中方舰艇逼走。中国舰艇编队非但不退,反而开足马力向南越军舰迎上去。此时对阵的双方,炮口相向、剑拔弩张,距离不断地缩小,紧张万分。终于南越舰队熬不住了,各舰向中方一起开炮,而就在其炮口火焰一闪的霎间,中方炮手也按下了电钮,西沙海战正式打响!这个时刻是1974年1月19日上午10点25分。
在关于谁先开炮的问题上,中方的说法始终是越方先开火,而南越方面在战后则声称是中方先打的炮。现在这个问题已经真相大白:无论西沙战后南越政府自己的调查,还是南越海军参战人员,包括当时南越4、5号舰舰长的回忆都肯定了是南越海军首先开的炮,并且是获得了其总统的授权。此外南越军舰在开火前曾要求空中支援,但是南越空军找不到适于在西沙海域作战的飞机,只答应派出F-5从战区上空飞过鼓舞士气,而直到战后其飞机也没出现。
有一种观点,认为当时南越军舰开火是在其后退以拉开距离,让其大口径火炮进入有利位置,中方舰艇追击以缩短距离时发生的,其实是不对的。首先如果那样,南越舰队肯定是尾炮而非主炮面对中方,不是很好的战位;第二当时在岛峪附近对峙时,双方的舰艇距离很近,用南越人员的说法是“在步枪的射击距离内”,中方舰艇又比南越军舰快(中方25节,南越20节),没必要等南越军舰走远了再去追;其三中方的正式文件也说当时是两军对开,越军先发炮。所以当时的情况应为双方对进,中方再接近就会进入南越舰队大口径火炮的死角,对其不利,故他们要首先开火。
南越军舰的第一炮瞄准的是中方舰艇的指挥台,由于其瞄准了很长时间,所以炮弹打的很准。一排炮下来,中方的几个舰长与政委非死即伤。但是中方舰艇继续高速近敌,发挥小口径速射炮的近距离优势,压制南越军舰。而南越军舰此时由于其大口径火炮发射速度慢,又兼中方舰艇小、舷高只有两米、距离太近进入其死角调整困难,发挥不了火力优势,被中方舰艇狂轰猛打。为了摆脱被动,南越军舰试图拉开距离,中方舰艇则穷追不舍,集中火力攻击南越4号、16号舰。