敌舰队指挥官看到自己只能挨打,下令全线向远海撤退,甘宁就下令追击。敌舰队指挥官看到这样不是办法,就下令三艘四级军舰迎敌,拖住唐军的铁甲船,掩护主力撤退。甘宁看到敌舰太多,不可能将其全歼,决定就消灭眼前的前来阻击的敌舰。
他们始终保持着1200左右的距离,向敌舰射击,敌舰也徒劳地向他们开炮,炮弹落在了几百米之外。
经过了大约20分钟的战斗,三艘敌舰都被击沉了。这时,敌舰队已经逃得很远了,甘宁努力向敌舰追去,敌舰又留下了一艘三级的风帆战列舰,与唐军纠缠。经过了大约15分钟的战斗,又将敌舰击沉了。
敌舰队已经逃得很远了。此时海上的风浪较大,铁甲船上下起伏,晃动很大。甘宁下令返航。
此时,海面上有很多落水的倭寇。甘宁想起诸葛瑾传达的国王的命令,对于倭寇这种没有人性的玩意儿,不要俘虏,杀死一个算一个。于是下令捞起来几个带回去宣传,其余的让士兵们练了枪法。
此战击沉倭寇1艘三级风帆战列舰,4艘四级风帆战列舰。歼敌近2000人,唐军无一伤亡。
上海海战的结果,引起了世界各国的巨大反响。