Bloqueo terrestre
El general romano Escipión, al mando de la legión de Megara, inició el cerco de Cartago excavando una zanja de 4,5 km que cerró totalmente el istmo y detrás de la cual instaló su campamento. Una segunda zanja paralela protegía el flanco terrestre, y dos trincheras perpendiculares formaban un cuadrilátero que encerraba a sus tropas. Cada zanja estaba reforzada con empalizadas de puntas afiladas; cerca de la ciudad, la defensa pasaba a un muro de 4 m de altura y 2 m de grosor, coronado por torres de vigilancia. Los legionarios, habituados a este tipo de obras, ejecutaron rápidamente estas gigantescas fortificaciones.
Debilidad marítima
Aunque el cerco era hermético por tierra, el mar quedaba menos controlado. Las embarcaciones romanas, cuando el tiempo se tornaba adverso, no podían impedir todos los maniobros de los navíos púnicos. Además, el comandante cartaginés decidió racionar los alimentos sólo entre los 30 000 defensores (soldados y trabajadores), dejando al resto de la población a su suerte. Los más adinerados, para evitar la hambruna, alquilaron barcos a precios exorbitantes y lograron abastecerse.
Contraataque cartaginense
Escipión comprendió que la única forma de ahogar a Cartago era bloquear su puerto. Ordenó la construcción de un dique de enormes bloques de piedra, obra que involucró a miles de obreros día y noche durante varios meses. En respuesta, los cartagineses, ingeniosos como siempre, cavaron una salida a través del muro que rodeaba la ciudad, en la costa este, un punto donde el romano dique no podía ser erigido. Mujeres, niños y hombres trabajaron sin descanso, mientras se ensamblaba una flota con los materiales reutilizados de la propia urbe: vigas de casas, maderas viejas, etc. Según Appiano, Estrabón y Livio (citado por Floro), surgieron 120 barcos, trirremes y quinqueremes, nacidos de esos talleres improvisados.
Una vez terminados el canal y la flota, el último tramo del muro se perforó. Al salir los barcos, los romanos quedaron asombrados: sus espías no habían descubierto el plan cartaginés. Las embarcaciones romanas, obligadas a contribuir a la construcción del dique, estaban vacías, lo que impidió que los cartagineses aprovecharan la sorpresa. La flota cartaginesa, tras destruir la romana, recuperó el dominio del mar y Escipión se vio obligado a levantar el sitio. El corte en el muro permaneció estrecho para permitir el paso de los barcos en caso de necesidad; tres días después, al ampliarse, los cartagineses salieron al combate, preparados para enfrentarse a una flota romana ya reconstituta.