西庇阿在埃布羅河河口處登陸,並立即發動奇襲攻取了迦太基人在當地的一個基地新迦太基(今卡塔赫納),獲取了大批戰略物資,包括城外的巨大銀礦。由於約束軍隊、善待俘虜、釋放被迦太基人囚禁在新迦太基城內的當地人質等措施,他成功地給當地人留下了“羅馬人是解放者”的印象。李維講述了一個故事:西庇阿手下的士兵抓到了一名美麗的女子,並把她獻給他們的指揮官;但西庇阿得知這名女子已經與一個凱爾特人酋長訂婚後,就立刻釋放了她,沒有傷害她的貞潔。顯然,西庇阿希望通過這些手段使西班牙居民支持羅馬,反對迦太基。因為羅馬與迦太基的主戰場在意大利(在那裏漢尼拔仍處於絕對優勢),西庇阿不可能指望從羅馬獲得足夠增援;因此他與當地人民建立良好關係是十分明智的決策。例如,那名被他釋放的婦女的未婚夫就率領他的部落來幫助羅馬人(根據李維的記載)。
前209年西庇阿進行了他的第一次大會戰,成功地把哈斯德魯巴爾·巴卡從他位於瓜達爾基維爾河上遊的過冬地拜倫趕走。在戰鬥前西庇阿很擔心馬戈·巴卡和吉斯科會把他們的部隊投入戰場,那樣的話迦太基人會很輕易地對數量上居於劣勢的羅馬人形成合圍。因此西庇阿的策略是迅速擊潰三個敵人中的一個,以為他進行機動應付另兩個敵人製造空間。雙方的步兵幾乎不分高下,但西庇阿隱藏了一支騎兵預備隊。當這支騎兵被投入使用後,哈斯德魯巴爾的防線崩潰了。盡管獲勝,西庇阿沒能對哈斯德魯巴爾進行有效的追擊,以阻止這支軍隊開往意大利支援漢尼拔。後來哈斯德魯巴爾成功地翻越了阿爾卑斯山,但在梅陶羅河戰役中被羅馬執政官蓋烏斯·克勞狄·尼祿擊敗(前207年)。
在以武力製服了一些不順從的西班牙部落領袖後,西庇阿於前206年在伊利帕戰役(發生於今塞維利亞附近)中對迦太基人取得了一次決定性的勝利。在這次戰役之後,迦太基人終於被迫放棄他們經營了多年的西班牙。
在征服西班牙之後,西庇阿開始為進軍非洲作準備。他先後遣使和親自前往努米底亞,希望說服其統治者與羅馬結盟。努米底亞對迦太基來說至關重要,該地區提供了迦太基的絕大部分雇傭兵。在坎尼會戰中,努米底亞騎兵給羅馬人留下了可怕的回憶。西庇阿成功地取得了東努米底亞王子馬西尼薩的支持,而西努米底亞國王西法克斯則成為迦太基的同盟者。
在從非洲返回西班牙時,西庇阿的軍隊發生了一場小規模叛變,很快就被平息。在攻克迦太基人最後的據點加的斯、肅清西班牙西南部之後,西庇阿於前206年返回羅馬。
西庇阿在西班牙時期部分改良了羅馬的軍事藝術。他賦予步兵軍團下的大隊以更高獨立性和靈活性,並改進武器(使用西班牙式樣的劍)。
前206年西庇阿返回羅馬,不久當選為前205年的執政官。此時西庇阿僅有31歲,還沒有達到出任執政官者所需的法定年齡(對於貴族,這一下限是40歲)。西庇阿立刻開始鼓吹進軍非洲攻擊迦太基本部的計劃。但是,元老院的許多成員(包括費邊)拒絕他的計劃。這些人有的是嫉妒他的成就,有的則是出於謹小慎微,因為當時漢尼拔仍在意大利境內,而馬戈·巴卡看來正準備支援漢尼拔。最終元老院隻允許西庇阿去西西裏,在那裏他可以自行選擇時機渡海進攻北非。西庇阿於是出鎮西西裏;他沒能從元老院得到一兵一卒,但他獲得了在西西裏招募誌願軍的權力。不久他就組建並訓練了一支有戰鬥力的誌願兵隊伍。
由於實戰經驗,西庇阿認識到迦太基人的騎兵對羅馬步兵具有致命的殺傷力。努米底亞騎兵給他留下了尤其深刻的印象,這些騎兵在戰鬥中對龐大的羅馬軍團產生了顯著的牽製作用。而羅馬人的騎兵相對薄弱,而且很多是來自不可靠的意大利盟邦,或者是一些僅僅為了顯示經濟地位而參加騎兵隊伍的所謂騎士階級。於是西庇阿著手建立一支自己的騎兵,這支騎兵主要由西西裏人組成;西庇阿幾乎是用強迫的方法讓西西裏居民服役,從而為非洲戰役作好了準備。
羅馬元老院派了一個調查委員會來西西裏考察西庇阿的備戰情況,發現他已擁有一支裝備精良的軍團和艦隊。西庇阿向元老院施壓要求渡海進攻非洲,但元老院中的保守派,以費邊為代表,繼續反對他的計劃。費邊對漢尼拔的威力仍然擔憂不已,並視任何針對迦太基本部的軍事行動為徒勞的冒險。也有一些守舊的元老由於西庇阿沉浸於希臘文化而憎惡他。在當時的羅馬,西庇阿是個顯著的新穎人物。他不喜歡羅馬人嚴肅簡樸的傳統,而對希臘世界的藝術、哲學和奢華的生活方式非常著迷。西庇阿在前205年將對基伯勒女神的崇拜從亞洲的弗裏吉亞引入羅馬也在一定程度上加劇了公眾對他的懷疑。最終元老院允許西庇阿為羅馬的利益渡海入侵非洲,但不給他任何軍事和財政支持。
前204年西庇阿終於率軍渡海前往非洲。羅馬軍隊大約有25000人,分乘50條船從西西裏南端港口利呂貝烏姆出發,順利地在迦太基西北部大城烏提卡附近登陸,並得到馬西尼薩及時的支持。但迦太基人已通過聯姻的方式確保了與努米底亞國王西法克斯的同盟關係,後者的進軍迫使西庇阿放棄圍攻烏提卡並後撤;羅馬人撤退到海岸線附近,在一個小半島上建立營地過冬。第二年西庇阿再次向敵人發起進攻,這次他采用了偷襲和火攻的方法。羅馬人縱火焚燒迦太基與努米底亞聯軍的營地,營中的士兵四散奔逃,結果在混亂的情況下被羅馬軍隊消滅。這次戰鬥給迦太基人帶來了極慘重的損失。波裏比阿和李維都認為,死於這次進攻的迦太基人和努米底亞人有4萬人之多,而且還有更多人被俘。
在戰鬥結束後,西庇阿立即派遣他的兩名副將拉埃利烏斯和馬西尼薩去追擊西法克斯,以絕後患。最後,西法克斯被打敗,親羅馬的馬西尼薩獲得了對努米底亞的統治權。迦太基人長期以來依靠努米底亞地區勇猛的騎兵,現在他們被迫麵對一個支持羅馬、敵視迦太基的努米底亞了。
在西庇阿取得了輝煌勝利之後,迦太基統治集團意識到自己的危險處境,企圖通過外交手段與羅馬人媾和。但同時,漢尼拔和他的大軍也被召回非洲。隨著漢尼拔的抵達,迦太基的主戰派占據了優勢,他們中斷了與羅馬的談判並重新開戰。關於漢尼拔從意大利帶回的是一支什麼樣的部隊,存在許多爭議。一些研究者認為,跟隨漢尼拔返回非洲的軍隊大多由被迫服役的意大利人組成,而他最有戰鬥力的老兵已在與羅馬的戰鬥中消耗殆盡;另一些人則認為此時漢尼拔仍擁有許多經驗豐富的老兵。
無論如何,在紮馬戰役展開時,漢尼拔有58000名步兵、6000名騎兵和80頭戰象。西庇阿隻有34000名步兵,但他在騎兵兵力上占有優勢(8700人)。前202年10月19日,兩位偉大的統帥在迦太基城與烏提卡之間的一片平原上相遇了,這就是軍事史上著名的紮馬會戰。
漢尼拔把步兵進行標準的三線布置,第一列是輕裝步兵,其後兩列是重裝步兵,而戰象又位於步兵前麵。他的戰術很簡單:用戰象的衝擊力在羅馬人的陣線上打開缺口,然後用得到騎兵支援的步兵插入這個缺口。
相對的,西庇阿改進了羅馬傳統的布陣法(投槍兵,主力兵和老兵分三列依次布置,每橫列有10個步兵大隊,每個步兵大隊有2個百人隊),他把每一列中的各個大隊都與另一列中的那些大隊前後對齊,結果在步兵陣形中留出了讓敵方戰象通過的距離。他把拉埃利烏斯率領的西西裏騎兵部署在左翼,馬西尼薩的努米底亞騎兵部署於右翼。
西庇阿的布陣方法破壞了漢尼拔的計劃。當迦太基戰象發起衝鋒時,它們衝進了羅馬人隊伍中事先留好的那些空隙,不僅沒有殺傷羅馬士兵,而且還沒能打亂他們的陣形。據記載,西庇阿還想出了其它對付戰象的辦法:羅馬軍隊中有一些人帶著喇叭,當戰象衝過來時他們就用力吹起來,把許多大象嚇得驚慌失措乃至發狂。衝入敵陣的大象又被步兵的利刃刺傷。盡管如此,戰象還是給羅馬的步兵隊伍帶來了不小的麻煩。此時由馬西尼薩和拉埃利烏斯率領的羅馬騎兵則在與迦太基騎兵的交鋒中占了優勢,並將對手趕出戰場,於是漢尼拔的步兵無望再獲得騎兵的支援。羅馬騎兵繼續追擊潰散的迦太基騎兵,這樣隻剩下雙方的步兵留在戰場上進行拚殺。戰鬥極其血腥,沒有一方能占據明顯優勢。當羅馬人奮力衝破迦太基陣形中的前兩列之後,他們合並成一條橫向陣線向漢尼拔尚未投入戰鬥的預備隊衝去,卻被那些強力的老兵擋住了。戰鬥一時陷入僵持,但及時返回戰場的羅馬騎兵最終決定了一切。羅馬騎兵從後方猛烈衝擊了漢尼拔的軍隊,後者隨即崩潰。
紮馬戰役的結果標誌著第二次布匿戰爭的結束。迦太基的大多數領袖意識到,他們的國家已無力再戰,遂決定向羅馬求和。據說當一名迦太基元老仍然在元老院中主張與羅馬作戰時,漢尼拔毫不客氣地把他從講台上拽了下來。另一方麵,一些強硬的羅馬人物,以老加圖為代表,主張徹底毀滅迦太基,要求西庇阿把迦太基夷為平地。但是,西庇阿卻對迦太基采取了比較溫和的態度,隻以一個苛刻的條約(按此條約,迦太基幾乎完全被解除武裝,並支付巨額賠款,未得羅馬同意不得向他國宣戰)結束了戰爭。而且,按照西庇阿的意願,漢尼拔實際成為迦太基的政治首腦。與他對敵人的仁慈相反,西庇阿對意大利人中的叛徒十分殘酷:來自拉丁城市的人被斬首,若是羅馬人則會在十字架上釘死。
西庇阿返回羅馬之後獲得了一次盛大的凱旋式並被贈予“征服非洲的”的稱號。他拒絕被給予其它更高的榮譽(曾有一些西庇阿的支持者甚至提出授予他終身執政官或獨裁官職位)。前199年西庇阿當選為監察官。在從監察官職位卸任後,他在許多年裏都沒有參與政治活動,直到前194年第二次出任執政官。
前193年西庇阿與其他幾名代表一起前往非洲,試圖調解正在擴張中的馬西尼薩與業已衰落的迦太基之間的尖銳矛盾。由於羅馬人明顯偏向馬西尼薩,這次調解沒有取得任何成果。前191年,羅馬與東方最強大的希臘化國家塞琉古帝國爆發戰爭。這次戰爭的起因是塞琉古國王安條克三世侵入巴爾幹,然而羅馬人的擴張意圖也起了決定作用。在安條克三世被趕出希臘後,羅馬元老院決心派遣遠征軍入侵位於亞洲的塞琉古帝國本土。大西庇阿的弟弟盧基烏斯·科爾內利烏斯·西庇阿被元老院任命為羅馬軍隊的指揮官,而大西庇阿與他同行(作這種安排的原因是,西庇阿剛於前194年的執政官職位卸任,尚未達到再次出任執政官的時間間隔)。很有可能,真正掌握軍隊領導權的是大西庇阿。前190年,羅馬軍隊在馬格尼西亞(位於小亞細亞)徹底打敗了安條克三世。大西庇阿由於生病沒有親自指揮這場戰鬥。在返回羅馬後,他的弟弟盧基烏斯獲得了“征服亞洲的”的稱號。
西庇阿對希臘文化和東方文化的偏愛以及他個人性格上的某些缺點給他豎立了不少政敵。老加圖是西庇阿的反對者中的代表人物;加圖以嚴厲和簡樸著稱,他認為西庇阿追求浮華並對其十分厭惡。當西庇阿兄弟結束了與安條克三世的戰爭返回羅馬後,西庇阿的敵人們找到了打擊他的把柄。 表麵上,打擊行動是針對大西庇阿的弟弟盧基烏斯·科爾內利烏斯·西庇阿的。前187年,保民官指控盧基烏斯挪用了安條克三世償付羅馬的賠款。西庇阿不得不出麵為弟弟進行辯護,盡管他知道政敵們真正的目標是他本人。西庇阿在法庭上質問,為何保民官如此關注3000塔蘭特黃金的去向,而不關注已經進入國庫的15000塔蘭特;他是在暗示,羅馬能獲得賠款一事本身就是盧基烏斯的功勞。這種高調的舉動弄得法官們不知所措,於是這次審判不了了之。
但事情並沒有這樣了結,這問題接連糾纏了西庇阿兄弟好幾年(實際上,大西庇阿去世後盧基烏斯終於被定罪,被課以罰款並險些坐牢)。前185年,西庇阿本人遭到指控,他被控在戰爭期間接受了安條克三世的賄賂。這事一直被鬧到公民大會。根據記載,西庇阿在公民大會上發表了一篇演說。他在演說中完全不提審判本身,而是向民眾強調他對羅馬的貢獻,尤其提醒民眾注意審判他的這天正是他在紮馬戰役中戰勝漢尼拔的日子。結果他成功地在人民中引起了一場支持他的狂熱,許多人,包括一些法官都簇擁到他身旁,一直跟著他到卡皮托裏山(羅馬七丘中的一座,朱庇特神廟位於其上)上去了。他們在那裏舉行祭典並向神祈禱給予羅馬更多像大西庇阿這樣的傑出統帥。於是西庇阿利用自己的個人威望擺脫了審判。雖然後來又有好幾次審判他的企圖,但都被他未來的女婿提比略·塞姆普羅尼烏斯·格拉古(老格拉古)巧妙地給阻止了。老格拉古的兒子、大西庇阿的外孫提比略·格拉古是古羅馬曆史上最重要的政治家之一。