Hinc invictus patriam defensum revocatus bellum gessit adversus P. Scipionem, filium eius, quem ipse primo apud Rhodanum, iterum apud Padum, tertio apud Trebiam fugarat. 2 Cum hoc exhaustis iam patriae facultatibus cupivit impraesentiarum bellum componere, quo valentior postea congrederetur. In colloquium convenit; condiciones non convenerunt. 3 Post id factum paucis diebus apud Zamam cum eodem conflixit: pulsus – incredibile dictu – biduo et duabus noctibus Hadrumetum pervenit, quod abest ab Zama circiter milia passuum trecenta. 4 In hac fuga Numidae, qui simul cum eo ex acie excesserant, insidiati sunt ei; quos non solum effugit, sed etiam ipsos oppressit. Hadrumeti reliquos e fuga collegit; novis dilectibus paucis diebus multos contraxit.
Da qui senza essere mai stato vinto richiamato per difendere la patria combattè contro Publio Scipione, figlio di quel Scipione che egli stesso aveva messo in fuga la prima volta sul Rodano, la seconda volta sul Po, la terza volta sulla Trebbia. Esaurite ormai le risorse della patria, Annibale sul momento desiderò porre fine alla guerra con lui, per combattere in seguito con maggiore successo. Si incontrò con lui per un colloquio, ma non si misero d’accordo. Pochi giorni dopo questo fatto si scontrò con lui presso Zama; sconfitto – incredibile a dirsi – giunse in due giorni e due notti ad Adrumeto, che dista da Zama circa trecento miglia. In questa fuga i Numidi, che insieme a lui si erano ritirati dal campo di battaglia, gli tesero un’imboscata e non solo riuscì a sfuggire loro, ma addirittura li sterminò. Ad Adrumeto radunò i fuggiaschi; mise insieme molti soldati in pochi giorni con nuove leve.