A questo punto della guerra Scipione, essendosi assicurato le retrovie, pose il campo a Tunisi, tagliando i collegamenti fra Cartagine ed il continente. Il senato cartaginese inviò un'ambasceria a Scipione per trattare la pace, e Scipione propose condizioni accettabili per l'ambasceria, imponendo comunque una tregua e l'invio di rappresentanti cartaginesi al senato di Roma. Tuttavia il senato cartaginese non era unanime, quindi vennero richiamati a Cartagine Annibale (dall'Italia) e Magone (dalle Baleari). Intanto a Cartagine erano state saccheggiate un certo numero di navi onerarie che dovevano portare rifornimenti a Scipione, disperse in seguito ad una tempesta, e le navi cartaginesi avevano attaccato una nave militare che trasportava ambasciatori romani a questa violazione della tregua Scipione reagì riprendendo le armi e richiamando dalla Numidia Massinissa con le truppe che gli aveva assegnato per consolidare il suo potere. Annibale, tornato dall'Italia, si accampò nei pressi di Zama, e, in un colloquio con Scipione, tentò di ottenere condizioni di pace migliori di quelle che erano state stipulate prima della violazione della tregua da parte dei cartaginesi, condizioni rifiutate da Scipione. Il giorno dopo i due generali vennero battaglia, e da quel momento Cartagine divenne una potenza satellite di Roma.