Армия Помпея в Африке состояла из десяти легионов (а если учитывать четыре легиона царя Юбы, то из четырнадцати) и 15 тысяч конницы. Это были значительные силы, не намного уступающие участвующим в битве при Фарсале. Но когда во главе армии противника стоял сам Цезарь, эти силы могли оказаться недостаточными. Поэтому у Катона были серьёзные основания для того, чтобы посоветовать Метеллу Сципиону принять стратегию уклонения, которая могла создать у противника трудности со снабжением и «поглотить всю энергию тирании».
Об африканской войне нам рассказал восторженный сторонник Цезаря, возможно занимавший низкое положение на социальной лестнице, поскольку он не был осведомлен о причинах принятия тех или иных политических решений. Пока Цезарь занимался подавлением итальянского мятежа, наступила осень, и теперь ему следовало немедленно начинать военные действия, поскольку приближалась зима с её штормами. Чтобы избежать дальнейших задержек, он даже не стал дожидаться необходимого количества кораблей, продовольствия и воды, а также четырёх преданных легионов, которые были в пути, и 25 декабря отплыл из Лилибея (Марсалы) в Западной Сицилии, где он продавал с торгов состояние Помпея. Цезарь взял с собой шесть легионов, причём пять из них состояли из новичков, и 2 тысячи лошадей. Большую часть кораблей отнесло штормом к северу, но после трёхдневного перехода Цезарю удалось высадиться на северном побережье Африки с примерно 3 тысячами солдат. Для высадки он выбрал Гадрумет (современный Сус в Тунисе), к югу от мыса Бон, поскольку главные силы врага расположились не здесь, а на севере провинции.
Однако жители Гадрумета не открыли перед Цезарем ворота города, так что ему пришлось двинуться на юго-восток и пройти приблизительно 25 миль, чтобы попасть в более гостеприимный Малый Лептис (Лемту). Здесь к Цезарю присоединились некоторые из его отставших транспортов. Он построил укрепления на прибрежном плато Руспины к северу от города. Главная проблема состояла в том, чтобы обеспечить войска провиантом. Военным действиям уделялось меньше времени, чем охоте за продовольствием, были моменты, когда лошадей кормили обессоленными водорослями. Наконец в тот день, когда к Цезарю присоединилась последняя часть его армии, началась основная часть экспедиции. Войска Цезаря едва не были разбиты вражеской конницей, состоявшей из нумидийцев, галлов и германцев, которой командовал Лабиен. Одновременно с тыла Цезаря атаковал Петрей. Ситуация была критической, но Цезаря спасла его вошедшая в анналы военной истории операция, когда чередующиеся когорты разворачивались одновременно. Только под покровом темноты он сумел вернуться в свой лагерь.
Цезарь никогда не упускал возможности разложить противника, и на этот раз запустил сплетню, будто у Метелла Сципиона настолько сдали нервы, что он не решается носить свой пурпурный плащ в присутствии царя Юбы. Сципион принял ответные меры и во всеуслышание заявил, что Цезарь спит с Евноей, женой Богудеса, одного из двух мавританских принцев, его союзников. Ещё одним соратником Цезаря стал бывший солдат Катилины из Кампании по имени Ситтий, сбежавший от своих итальянских кредиторов и оказавшийся в Мавритании. Там он собирал вооружённые банды авантюристов и с большой прибылью предоставлял их в качестве наёмников местным правителям. Теперь он передал своё войско в распоряжение Цезаря и присоединился к мавританцам, наступавшим на земли царя Юбы, которого люто ненавидел.
Это выступление в тылу вынудило царя Юбу покинуть Метелла Сципиона, но он вскоре возвратился, соблазнённый, как предполагали его враги, хотя, скорее всего, безосновательно, предложением Метелла Сципиона стать властелином всей Римской Африки. Царь Юба привёл с собой 30 боевых слонов.
Но Цезарь всё ещё не мог начать основную схватку с врагами. Теперь, когда подоспело подкрепление и численность его армии достигла почти 30 тысяч, потребность в пополнении запасов продовольствия заставляла его постоянно находиться на марше, и так, всё время отбиваясь от конницы Лабиена, он продвинулся на 7 миль в глубь страны. Теперь у обеих сторон возникли проблемы дисциплинарного характера. Бывшие мятежные легионеры Цезаря из Кампании прибыли в его лагерь после ужасного, голодного перехода. Они горько сетовали на то, что их командующий Авений путешествовал в роскоши, тогда как они несли все тяготы долгого пути. Цезарь сразу же воспользовался возможностью отправить обратно этого военачальника, причинявшего ему только беспокойство. Метелл Сципион также страдал от дезертирства. Его неразумная речь, обращённая к войскам, в которой он много говорил об «освобождении» римского народа и сената и ничего не сказал о вознаграждении для солдат, отнюдь не исправила положение.
Тем временем Цезарь после продолжительного и быстрого передвижения с места на место наконец нашёл способ заставить противника вступить в бой. Он добился этого блокадой одного из важных для противника городов, Тапса (на мысе Рас-Димас). Цезарь уже установил блокаду города с моря, поскольку, как он и ожидал, Метелл Сципион понимал, что не может себе позволить потерять находившийся там значительный гарнизон и склады. Тапс был расположен на участке суши шириной от полутора до трёх миль, между морем и заболоченным озером. Когда Цезарь выдвинулся на эту полосу, воины Помпея, забыв о совете Катона следовать тактике Фабия, решили, что смогут спасти Тапс и в то же время загнать врага в угол. Поэтому они поспешили блокировать мыс с обоих концов: Юба и Афраний — с юга, а Метелл Сципион — с севера.
Цезарь выбрал такое поле битвы, на котором силы врага были разделены, а возможности вражеской конницы строго ограничены, и вынудил Метелла Сципиона вступить в сражение. Вероятно, он получил необходимую ему секретную информацию о присутствии своих отрядов в тылу врага.
Битва, происходившая 6 апреля 46 года до н. э., началась не так, как планировал Цезарь. По его собственным словам, он был нездоров, и его голодные, оборванные солдаты, возбуждённые рассказами о богатстве врага и признаками паники в его рядах, пошли в атаку прежде, чем получили приказ от Цезаря. Однако диктатор смог извлечь выгоду и из этой ситуации, ринувшись в бой вместе с ними. Боевые слоны царя Юбы испугались лучников и солдат, стрелявших из пращи, и бросились в панике назад, топча пехотинцев, попадающихся на пути. Африканская конница также панически отступила. Через несколько минут целое войско было разбито, а Юба и Афраний бежали, как только услышали эти страшные известия.
Ещё одна кампания гражданской войны закончилась. Причём её завершение было более тяжёлым, чем когда-либо прежде, поскольку голодающие ветераны Цезаря вышли из повиновения. Они уничтожили более 10 тысяч солдат Помпея, которые хотели сдаться в плен, а затем резко выступили против римских сенаторов и даже против собственных командиров, которых они обвиняли в мягкости к врагу. Лабиену и сыновьям Помпея снова удалось скрыться. Катон решил, что для него настал час расстаться с жизнью, поскольку единственно возможным путём к спасению было сдаться на милость Цезаря. В Утике он покончил самоубийством, создав, таким образом, легенду, которая впоследствии оказалась очень неудобной для Цезаря. Метелл Сципион, загнанный Ситтием в море, закололся кинжалом. Его кончина была героической, чего никак нельзя было сказать о его жизни. Нумидийский царь Юба планировал совершить самоубийство, сопровождаемое гигантским жертвоприношеним, во время которого вся его столица должна была превратиться в огромный костёр, но жители города отказались участвовать в этом представлении и не допустили его. Тогда Юба и Марк Петрей после прощального обеда начали смертельный поединок. Юба убил своего римского союзника, а затем приказал рабу добить себя.