在刚刚开战的五分钟内,国民军无疑获得了上帝更多的垂青。巴利阿里号的主炮命中伯塔德号一发,并迫使其退出战斗。而它副炮也有效地压制了共和国驱逐舰。塞尔韦拉号的152主炮命中塞万提斯号两发,不过好像并没有影响塞万提斯号的战斗力。
而共和国的两条轻巡洋舰虽然也命中了巴利阿里号四发152炮弹,但是都没有击中要害。第一发击中并摧毁了巴利阿里号的水上飞机库。第二发命中罗经舰桥,打死了不少军官,但是最重要的指挥人员在带有装甲保护的司令塔里。第三发击穿了舰首,只是在舰体上开了两个天窗。第四发击毁了一门120副炮。
仗打到这个份上,乌维塔的信心开始动摇。他的舰队不断击中巴利阿里号,可是这条船就像一个刀枪不入的怪物。而巴利阿里号的一次齐射就迫使自己的旗舰离开战列。而且随着伯塔德号的离开,巴利阿里号和塞尔韦拉号开始联手攻击塞万提斯号。乌维塔认为如果继续拼下去,这两条船都会丢在这里。所以,现在该是撤退的时候了。不过在撤退前,他还是给莫雷诺准备了一些“小礼物”。
很快共和国编队开始放出了烟雾。浓烟阻挡了双方的视线,炮击停止了,海面又一次平静下来。不过,这并不表示共和国的海军对这场海战已经放弃。相反4条共和国驱逐舰将打出最后的一击。他们以35节的高速,迎着国民军编队密集的弹雨冲了上来,他们以巴利阿里号的炮口闪光点位目标,发射了所携带全部16条鱼雷。
16条鱼雷以100米的间隔,覆盖了整整一海里的区域。而巴利阿里号则拼命扭转硕大的身躯以躲避这最后也是致命的一击。但在,在刚才的炮战中这条军舰已经用完了所有的rp,这次连上帝也抛弃了它。一枚鱼雷击中了巴利阿里号的舰首,330公斤的装药所引发的大爆炸将整个舰首从船体上撕裂。爆炸引起的震动使得整体船的供电中断了几十秒。1500吨海水从裂口拥入船体。但是不幸中的万幸,经过损管人员的抢修这条船还浮在海面上。
卡塔赫纳湾海战就这样结束了。海战的双方都宣称自己是胜利者。对于国民军而言,他们宝贵的货船安全地抵达了港口,而且他们使得共和国的两条巡洋舰在船厂分别修理了八个月和三周。对于共和国方面,他们的鱼雷击中了巴利阿里号,使得这条船进厂修理了整整一年。大部分的西方观察家认为在此期间共和国方面将掌握了制海权,切断国民军的外援通道。