Als Scipio der Ältere 204 v. Chr. in Afrika landete, kam Massinissa als beinahe mittelloser Flüchtling zum römischen Heerführer. Scipio musste, als Syphax mit einer Armee erschien, die Belagerung Karthagos abbrechen. Er ließ die in numidischen "mapalia" nächtigenden Gegner jedoch angreifen und ihre Hütten niederbrennen. Er selbst attackierte Hasdrubals Lager. Dabei trug Massinissa bei dem Überfall durchaus zum Sieg über Hasdrubal und Syphax bei. Zusammen mit Laelius fiel Massinissa noch im selben Jahr in das Reich des Syphax ein. Hasdrubal und Syphax, die insgesamt 30.000 Mann unter Waffen hatten, von denen 6000 Keltiberer waren, unterlagen schließlich in der Ebene des Bagradas. Hasdrubal floh nach Karthago, Syphax nach Numidien. Der zurückgekehrte Hannibal unterlag schließlich bei Zama und musste 193 v. Chr. aus Karthago fliehen. Karthagos Gebiet wurde auf Afrika beschränkt, die Stadt musste in den nächsten 50 Jahren 10.000 Talente Silber an Rom abliefern, die Flotte musste bis auf zehn Schiffe ausgeliefert werden. Offiziell wurde Karthago zur Verbündeten erklärt, als Rom gegen Makedonien und gegen die Seleukiden Krieg führte. Dazu lieferte die Stadt sogar Getreide und stellte sechs ihrer zehn Schiffe. Für Numidien war neben dieser Machtbeschränkung die wichtigste Vertragsklausel, dass Karthago ohne römische Zustimmung keinen Krieg mehr führen durfte.