V bitvě u Zamy proti Hannibalovi velel Massinissa jízdě na Scipionově pravém křídle. Sám Scipio střetnutí s Kartaginci oddaloval tak dlouho, dokud se Massinissa se svými jezdci nepřipojil k jeho armádě. Bitva samotná se pro Římany nevyvíjela zcela optimálně a již se zdálo, že Hannibal zvítězí. V tomto kritickém momentě se ale Massinissa, který nejdříve z bojiště zahnal kartaginskou jízdu, vrátil zpět a Kartagincům, kteří měli vítězství v boji takřka na dosah ruky, vpadl do týlu a uvedl jejich řady do naprostého chaosu. Tím byla bitva a tedy i celá válka rozhodnuta ve prospěch Římanů. Za svoje služby obdržel Massinissa od Římanů Syfakovo království, což z něho učinilo pána celé Numidie. Kartaginci mu navíc na nátlak Římanů museli odstoupit rovněž Tripolitánii (dnešní severozápadní Libye), takže Numidské království nyní kartaginské državy úplně obkličovalo.