Durante l'assedio di Cartagine, resistette tre anni, ottenendo inizialmente anche numerose vittorie, ma con l'arrivo di Scipione Emiliano le sorti cambiarono. Quando i cartaginesi, stremati dalla fame e dalle epidemie vedono preclusa ogni possibilità di successo, Asdrubale tenta un negoziato col console romano, ma le condizioni offerte non sono accettabili, perciò rinuncia.