В соответствии с новым приказом Цезаря, каждый легион в боевом строю должен был держать 300 человек, готовых действовать в качестве поддержки для конницы. Эти подразделения помогли отогнать нумидийских всадников, преследовавших легионы. Вскоре Цезарь подошел к городу Сарсура, взял его приступом и захватил значительные запасы зерна, собранные противником. Сципион не попытался воспрепятствовать ему. Следующий город, удерживаемый неприятелем, был слишком сильно укреплен, чтобы взять его без длительной осады, поэтому Цезарь развернулся и снова встал лагерем в окрестностях Аггара. Он снова предложил сражение, но помпеянцы отказались спуститься с возвышенной местности, которую они занимали, а Цезарь не хотел ставить солдат в невыгодное положение, атакуя противника на этой позиции. 4 апреля он снова выступил в путь ранним утром и преодолел 16 миль, отделявших его от прибрежного города Тапса, где приступил к осаде. Сципион последовал за ним и разделил свою армию между двумя лагерями примерно в восьми милях от города. Тапс, расположенный между морем и большой солоноводной лагуной, имел лишь два узких подхода. Предвосхитив маневр противника, Цезарь заложил форт, заблокировавший самый удобный доступ к городу. Тогда Сципион ночью повел своих солдат вокруг озера, чтобы подойти к городу с другой стороны по узкому сухопутному перешейку шириной не более полутора миль. Он прибыл туда утром 6 апреля. Юба и Афраний оставались в лагере со своими войсками, препятствуя выступлению Цезаря [18].
Цезарь оставил два легиона новобранцев на осадных линиях и выставил остальную армию в обычном тройном строю напротив Сципиона. Он поставил на флангах ветеранские легионы при поддержке лучников и пращников: Десятый и Девятый легионы на правом фланге, а Тринадцатый и Четырнадцатый на левом фланге. В качестве дополнительной защиты, особенно от боевых слонов противника, он разделил Пятый легион на две части и сформировал дополнительную четвертую линию из пяти когорт за каждым флангом. Три менее опытных легиона (в тексте не сказано, какие именно) стояли в центре строя. Конница, как обычно, располагалась на флангах, хотя на такой узкой полосе суши у нее было мало свободного места для маневра. Это представляло еще большую проблему для помпеянцев, чья конница была более многочисленной, хотя предположительно основная масса нумидийцев осталась вместе с Юбой. Цезарь оставил часть своего флота у Тапса, а остальным кораблям приказал войти в пролив и угрожать противнику с тыла после начала сражения.
Наши источники почти не дают сведений о боевых порядках помпеянцев, а также о численности войск под командованием Сципиона по сравнению с теми, которые остались под командованием Юбы и Афрания. Скорее всего конница, как обычно, располагалась на флангах, легионы стояли в тройном строю, а слоны были выдвинуты вперед и сосредоточены ближе к флангам.
В целом положение складывалось благоприятно для Цезаря. Помпеянцы разделили свои силы и заняли позицию на местности, позволявшую лишь прямое столкновение, в котором более опытные войска Цезаря имели преимущество. Его легионеры рвались в бой и не сомневались в победе. Многие командиры просили его дать сигнал к атаке. Цезарь видел их энтузиазм, когда проходил вдоль строя. Несмотря на это, автор «Африканской войны» сообщает следующее:
Когда Цезарь понял, что солдат не остановить, он дал пароль «удача» (
Уверенность легионеров оказалась оправданной, поскольку помпеянцы не могли предвидеть этот внезапный натиск. Плутарх дает другую версию, в которой утверждает, что перед началом сражения Цезарь почувствовал приближение эпилептического припадка и его пришлось отнести в укрытие, поэтому сигнал к атаке был подан в его отсутствие. Существует лишь несколько историй, где упоминается об эпилептических припадках Цезаря, и это единственная, где содержится намек на то, что эпилепсия мешала ему командовать войском [20].