然而,在马登决定向南京派舰的前一天,在北平和谈的中国共产党代表团已经向中华民国政府代表团提出《国内和平协定》最后修正案,并指出4月20日为签字最后期限,否则人民解放军将立即渡江。
施谛文明知人民解放军已经控制了长江北岸并且即将渡江,却没有反对马登的行动计划,他也不打算就英舰在长江上的行动征得中国共产党方面的同意。19日8时,“紫石英”号离开上海前往南京,而马登当天下午才接到国民政府允许“伴侣”号和“紫石英”号在长江上航行的许可。4月20日清晨,悬挂英国国旗和英国海军军旗(白船旗)的“紫石英”号驶入泰兴以南七圩港附近江面,这里是解放军第三野战军第10兵团的预定渡江作战区域,配属三野特纵炮6团。炮6团1营3连报告发现了由下游上驶的一艘不明军舰,当时天色朦胧,江面上雾气未散,紫石英号很快驶过没有引起进一步注意。
8时30分,“紫石英”号进入扬州东南口岸-三江营附近江面,这里是解放军第三野战军第8兵团的预定渡江作战区域。北岸解放军炮兵第1团1营所辖炮兵部队向紫石英号前后水面鸣炮示警,紫石英号展开大幅英国国旗表明身份,但继续向上游行驶,并用舰炮指向北岸。
英国海军紫石英号军舰
9时30分左右,紫石英号已驶过三江营左翼的解放军炮位,进入了三江营江段狭口和弯道。负责封锁江面的解放军三野特种兵纵队炮兵第3团的2个连,分别配置日制75毫米野炮和日制105毫米榴弹炮各3门,根据其上级“发现外国军舰侵入我防区而不听警告停止航行的,可以立刻开炮射击”的指示,向紫石英号射击,紫石英号立即开炮还击。
紫石英号的舰桥和轮机舱被多发炮弹命中,正、副舰长负伤,失控搁浅在靠近南岸的玫瑰岛(Rose Island)附近。由于航向失控,紫石英号3个炮塔中位于舰艏的两个都无法瞄准解放军炮兵阵地,只有艉部的X炮塔双联主炮发射了30余发炮弹。英舰升起白旗后,解放军炮兵停止了射击。
炮战中解放军有6人受伤。据英国首相艾德礼4月26日在下议院的报告,紫石英号中弹50余发,阵亡19人、伤27人,其中舰长斯金纳(B. W. Skinner)少校重伤,几天后不治死亡。紫石英号的部分船员登上国民政府军队控制的南岸,后来被国军送往上海。南岸的国军第51军目睹了炮战的整个经过,向中华民国海军第二舰队确认江面上不是己方舰只后,第51军没有开火。当天晚些时候,英国的一架“桑德兰”水上飞机紧急起飞救援,飞抵三江营江面降落,送来军医费恩利(Fearnley)上尉,飞机遭到警告炮火射击被赶走。
紫石英号的同级舰艇
长江两岸的解放军和国军后来都表示看到紫石英号在遭到炮击后升起了白旗,英方后来称英舰升起的是白船旗(White Ensign),表示在执行和平的使命。
“紫石英”号在炮战时通过无线电求救,英国远东舰队副司令马登中将命令在南京的“伴侣”号前往增援。11时30分,“伴侣”号从南京出发,13时45分靠近“紫石英”号,并同解放军炮兵第3团所属部队交火。伴侣号出现后,紫石英号降下了白旗。炮兵第3团野炮连的阵地存在射击死角,“伴侣”号利用这一点,击毁解放军炮兵2门野炮,同时自身中弹5发。
随后“伴侣”号几次试图拖带紫石英号,但遭到解放军榴弹炮连的炮击,英舰舰桥、两座炮塔中弹,“伴侣”号意识到不可能安全地带走已失去动力的紫石英号,于是向下游方向以29节的高速离开。途中进入解放军炮兵第1团1营(配备美制105毫米榴弹炮)的火力范围又遭炮击。这次炮战中,“伴侣”号10人阵亡,包括舰长罗伯森中校在内的4人重伤。解放军伤亡约40人
4月20日,即“紫石英”号与解放军交火当天,英国海军远东舰队副司令马登中将正乘“伦敦”号重巡洋舰在前往上海的途中。获悉事件后,马登没有在上海停靠,立即命令“伴侣”号与在上海的“黑天鹅”号护卫舰与他汇合。马登亲自带领“伦敦”号和“黑天鹅”号直接驶入长江,试图救出“紫石英”号。晚8时,与“伴侣”号在江阴江面汇合。由于伴侣号损伤,马登命令该舰前往上海修理[15]。与此同时,解放军当晚已经开始从长江中游渡江,在江阴附近集结的部队将于第二天渡江。双方发生军事冲突尚未经交涉,英舰再次进入长江救援也未与解放军取得联系。