Slaget ved Ilipa

Opptakt

Etter slaget ved Baecula og etter at Hasdrubal Barca forlot Hispania, landet karthagenske forsterkninger tidlig i 207 f.Kr. under Hanno som snart sluttet seg til Mago. De satte sammen en mektig armé ved utstrakt rekruttering av keltiberere. I mellomtiden rykket Hasdrubal Gisgo frem med sin armé fra Gades inn i Andalucía. Dermed stod Scipio overfor to fiendtlige styrker. En av dem ville uten tvil falle ham i ryggen dersom han forsøkte å angripe den andre.
Scipio besluttet etter nøye planlegging å sende en avdeling under Silanus for å slå til mot Mago først. Silanus marsjerte raskt og klarte å overraske de karthagenske leirene. Resultatet var at Magos keltere ble spredt og Hanno ble tatt til fange.
Dermed stod Hasdrubal alene mot Scipios styrker, men den karthagenske generalen klarte å unngå slag ved å splitte troppene sine mellom befestede byer. Kampanjen i 207 f.Kr. i Spania endte dermed uten videre hendelser.

Manøvrer før slaget

Våren etter satte karthagerne i gang sitt siste store forsøk på å ta tilbake sine spanske områder. Hasdrubal sluttet seg til Mago ved Ilipa og satte sammen en styrke som blir anslått til mellom 54 000 og 70 000, betydelig større enn Scipios armé på 43 000 menn som var sammensatt av et stort antall spanske allierte som ikke var like erfarne som de romerske legionærene.
Da romerne ankom, satte Mago i gang et dristig angrep på den romerske leiren med store deler av sitt kavaleri under ledelse av hans numidiske allierte Massinissa. Men Scipio forutså dette og hadde skjult sitt kavaleri bak en høyde. Disse angrep den karthagenske flanken og kastet fienden tilbake med store tap på Magos side.
De to motstanderne brukte de neste dagene til å observere og teste hverandre. Scipio ventet alltid med å lede sine tropper ut til karthagerne hadde rykket ut fra sin leir. Den romerske formasjonen hadde alltid legionærene i sentrum og de spanske allierte på flankene, noe som fikk Hasdrubal og Mago til å tro at dette ville være romernes oppstilling i slaget.

Slaget

Da Scipio trodde at systemet i hans troppeformasjoner var tydelig oppdaget hos de karthagenske kommandørene, gjorde Scipio sitt trekk. Først beordret han at soldatene skulle gis mat og bevæpnes før dagslyset kom. Så sendte han sitt kavaleri og sine lette tropper mot de karthagenske utpostene ved morgengry mens han rykket frem med sin hovedstyrke bak, hele veien frem til den karthagenske posisjonen. Denne dagen stod hans legionærer på flankene med spanjolene i sentrum.
Karthagerne var overrasket over det plutselige angrepet til romerne og skyndte seg etter våpen og videre til sine posisjoner uten frokost. Hasdrubal trodde at Scipio ville sette sin styrke i den samme formasjonen som tidligere, og han satte derfor ut sine beste afrikanere i sentrum med spanske leiesoldater på flankene. Han kunne ikke forandre formasjonen etter at han oppdaget romernes nye formasjon da den angripende arméen var for nær.
De neste timene holdt Scipio sitt infanteri bak de lette troppene. Dermed forsterket han effekten av mangel på frokost hos sin fiende. Da han endelig bestemte seg for å angripe, ble de lette troppene kalt tilbake for å posisjonere seg bak legionærene på flankene før hovedangrepet begynte. Hans flanker rykket raskere frem enn spanjolene i sentrum slik at Scipio fikk en konkav, eller motsatt Cannae, slaglinje. Videre utvidet den romerske generalen sine flanker ved å beordre de lette troppene på flankene til legionærene og kavaleriet på flankene til de lette troppene fremover og omsluttet dermed de karthagenske linjene på begge sider.
Mens han fremdeles holdt seg unna sentrum, angrep Scipios legionærer, lette tropper og kavaleri de halvtrente spanjolene på karthagernes flanker fra front, flanke og rygg respektivt. Det karthagenske sentrum var maktesløse og kunne ikke forsterke sine flanker med trusselen som de spanske styrkene utgjorde i front, men som fremdeles ikke hadde angrepet.
Med den uunngåelige ødeleggelsen av dens flanker, ble det karthagenske sentrum enda mer demoralisert og forvirret av nedtrampingen som deres egne elefanter gjorde da de ustyrlige elefantene ble drevet fremover mot sitt eget sentrum av det romerske kavaleriet som angrep flankene. Trette og sultne begynte karthagerne å trekke seg tilbake, først i sluttet orden. Men da Scipio begynte å bruke sin fordel ved å beordre sitt spanske sentrum inn i slaget, begynte formasjonene å smuldre opp. En massakre som kunne ha vært en rival til den i Cannae ble bare unngått av et plutselig skybrudd som stanset alle operasjoner på slagmarken og gjorde at de resterende karthagerne kunne søke tilflukt i sin egen leir.

Manøvrer etter slaget

Karthagerne var for øyeblikket trygge i sin leir, men de fikk ikke mulighet til å hvile. De måtte forsterke sine posisjoner for å kunne stå overfor det uunngåelige romerske angrepet dagen etter. Men ettersom flere og flere spanske leiesoldater deserterte i løpet av natten, forsøkte Hasdrubal å komme unna i mørket sammen med sine afrikanere.
Men Scipio ville ikke gjenta sin ulykke i Baecula. Han beordret umiddelbart en forfølgelse. Hele den romerske arméen satte etter Hasdrubal med kavaleriet i front. Da romerne endelig tok igjen karthagerne, begynte slakten som etterlot Hasdrubal med 6000 menn som flyktet opp på en fjelltopp uten vannforsyning. Disse restene av den karthagenske armé overgav seg kort tid etterpå, men ikke før Hasdrubal og Mago hadde flyktet.

Etterspill

Hasdrubal reiste etter slaget fra Spania for å besøke den mektige numidiske kong Syphax. I hans hoff ble han møtt av Scipio som også ønsket numidernes tjeneste.
Mago flyktet til Balearene. Han seilte videre derfra til Liguria og forsøkte en invasjon av det nordlige Italia.
Etter at han endelig hadde underlagt seg karthagenernes Hispania og fått hevn over de spanske høvdingene som hadde forrådt hans far Publius og onkel Gnaeus, returnerte Scipio til Roma. Han ble valgt til konsul i 205 f.Kr. enstemmig. Han fikk kontroll over Sicilia som prokonsul, og derfra realiserte han sin invasjon av det karthagenske hjemlandet.