エブロ川河口の海戦
長期的な観点から、カルタゴにとってこの敗北は大きかった。ハスドルバルはその根拠地であるカルト・ハダシュト(現在のカルタヘナ)に引き返すことを余儀なくされ、またカルタゴ支配地に対するローマの海上からの攻撃を恐れる必要があった。イベリア半島のカルタゴ海軍が粉砕されたため、カルタゴ本国から艦隊を呼び寄せるか、あるいは新規に艦艇を建造する必要があったが、何れも実施されなかった。イベリア人乗組員の戦闘能力は不足しており、また彼らを解雇したことによりいくつかの部族が反乱し、その鎮圧のためにカルタゴ本国から歩兵4,000と騎兵500を送ることが強いられた。ハスドルバルは紀元前216年の1年間を、この反乱の鎮圧に費やした。
紀元前217年、カルタゴの本国艦隊がコサ(en、現在のグロッセート県アンセドニア)からイベリアに向かっていたローマ輸送船団を拿捕した。
エブロ川に到着すると、カルタゴ海軍はその河口に停泊した。艦隊は十分な食料の運搬能力を持たなかったため、乗組員は食料収集のため上陸した。ハスドルバルはローマ陸軍の動きを探るための偵察隊を出していたが、ヒミルコはローマ海軍偵察のための偵察艦は出していなかった。マッシリアの船2隻が停泊しているカルタゴ艦隊に近づき、気づかれずに離脱してグナエウス・スキピオにカルタゴ艦隊の到着を知らせた。ローマ艦隊はタラッコを出帆しており、グナエウス・スキピオが警報を受け取ったときには、カルタゴ艦隊の北方10マイルに位置していた。グナエウス・スキピオはより抜きの軍団兵を乗せ、カルタゴ艦隊攻撃のために出撃した。
ハスドルバルが派遣した陸軍の偵察隊は、ローマ艦隊の接近を確認し、カルタゴ艦隊に対して狼煙を使って警告した。しかし、多くの艦船の乗組員は上陸中であり、あわてて乗組員を戻してバラバラに出帆した。各艦の協調はほとんど取られておらず、乗組員不足の艦もあった。ヒミルコが出帆すると、ハスドルバルは陸軍兵を海岸に集めて喚声をあげさせ、海軍を元気付けた。
ローマの奇襲および数的優位性(55隻対40隻)だけでなく、カルタゴ艦隊の1/4は訓練が不足していた。ローマ艦隊は35隻のローマ艦が前方に、20隻のマッシリア艦が後方に戦列を組み、連度に優れたマッシリア艦はカルタゴ艦の機動を封じ込めた。カルタゴ艦が河口から出てくると、ローマ艦はこれに衝角攻撃を実施して4隻を撃沈し、2隻に接舷攻撃をしかけて鹵獲した。カルタゴ艦の乗組員は戦意を失い、陸軍が守る海岸に乗り上げた。このうち23隻をローマ軍は鹵獲した。