但是,上帝显然不希望双方这样消耗宝贵的燃油。因为有货轮的拖累,莫雷诺的编队只能保持8节的航速,而且他们的目的地大家都知道。这就使得乌维塔的舰队有机会在莫雷诺的航线前面伏击他。
12月28日凌晨4点,两支舰队几乎是同时发现了对付,此时他们之间的距离只有5000米。双方的照明弹将这片海域照亮。照明弹的余晖下,莫雷诺的编队开始转变队形,由一路纵队变为两路纵队,巴利阿里号和塞尔韦拉号挡在了共和国舰队和货轮之间。而乌维塔的舰队则由三路纵队变为了由巡洋舰打头,驱逐舰垫底的一字长龙。两支舰队都选择排成传统的战列线,开始对轰。
莫雷诺的编队首先完成编队的转化,首先开火。按照射击条例,正式射击前首先要进行一个半齐射的试射。巴利阿里号的两座前主炮首先开火。100多公斤的炮弹只用了短短的7秒钟,就跨越了5000米的距离。如此近的距离上,哪怕是巴利阿里号上的新手也获得了一个完美夹射。通过测距仪的镜头,可以清晰地看到四条50米高水柱将共和国编队的旗舰伯塔德号牢牢包围。30秒后,两座后主炮也开始射击,但是没有命中。直到第2次齐射时,巴利阿里号才获得一发命中弹。炮弹命中了伯塔德号的中部,并引起了火灾,大团的浓烟从破口中涌出,伯塔德号很快减速离开了战列。
在刚刚开战的五分钟内,国民军无疑获得了上帝更多的垂青。巴利阿里号的主炮命中伯塔德号一发,并迫使其退出战斗。而它副炮也有效地压制了共和国驱逐舰。塞尔韦拉号的152mm主炮命中塞万提斯号两发,不过好像并没有影响塞万提斯号的战斗力。
而共和国的两条轻巡洋舰虽然也命中了巴利阿里号四发152mm炮弹,但是都没有击中要害。第一发击中并摧毁了巴利阿里号的水上飞机库。第二发命中罗经舰桥,打死了不少军官,但是最重要的指挥人员在带有装甲保护的司令塔里。第三发击穿了舰首,只是在舰体上开了两个天窗。第四发击毁了一门120mm副炮。
仗打到这个份上,乌维塔的信心开始动摇。他的舰队不断击中巴利阿里号,可是这条船就像一个刀枪不入的怪物。而巴利阿里号的一次齐射就迫使自己的旗舰离开战列。而且随着伯塔德号的离开,巴利阿里号和塞尔韦拉号开始联手攻击塞万提斯号。乌维塔认为如果继续拼下去,这两条船都会丢在这里。所以,现在该是撤退的时候了。不过在撤退前,他还是给莫雷诺准备了一些“小礼物”。
很快共和国编队开始放出了烟雾。浓烟阻挡了双方的视线,炮击停止了,海面又一次平静下来。不过,这并不表示共和国的海军对这场海战已经放弃。相反4条共和国驱逐舰将打出最后的一击。他们以35节的高速,迎着国民军编队密集的弹雨冲了上来,他们以巴利阿里号的炮口闪光点位目标,发射了所携带全部16条鱼雷。
16条鱼雷以100米的间隔,覆盖了整整一海里的区域。而巴利阿里号则拼命扭转硕大的身躯以躲避这最后也是致命的一击。但在,在刚才的炮战中这条军舰已经用完了所有的rp,这次连上帝也抛弃了它。一枚鱼雷击中了巴利阿里号的舰首,330公斤的装药所引发的大爆炸将整个舰首从船体上撕裂。爆炸引起的震动使得整体船的供电中断了几十秒。1500吨海水从裂口拥入船体。但是不幸中的万幸,经过损管人员的抢修这条船还浮在海面上。
卡塔赫纳湾海战就这样结束了。海战的双方都宣称自己是胜利者。对于国民军而言,他们宝贵的货船安全地抵达了港口,而且他们使得共和国的两条巡洋舰在船厂分别修理了八个月和三周。对于共和国方面,他们的鱼雷击中了巴利阿里号,使得这条船进厂修理了整整一年。大部分的西方观察家认为在此期间共和国方面将掌握了制海权,切断国民军的外援通道。
〖