Jabarkan Pertempuran dari Pertempuran Agrigentum

Sejarawan Yunani Polybius mengatakan bahwa selama dua bulan, kedua musuh berada saling berdekatan di luar kota tanpa adanya konflik langsung. Hannibal, yang masih berada di dalam kota, mengirimkan pesan dan sinyal api secara terus-menerus yang menekankan bahwa kota berada dalam kondisi serba kekurangan pangan dan desersi musuh yang menyebabkan Hanno terpaksa bertempur. Pasukan Romawi, yang juga hampir berada dalam kondisi kelaparan, menerima pertempuran tersebut. Setelah perjuangan panjang, pasukan Romawi membunuh sebagian besar pasukan Kartago. Kartago kehilangan 3.000 infanteri dan 200 kavaleri korban tewas, serta 4.000 tahanan dan delapan gajah tewas dan 33 menjadi cacat. Sepanjang seluruh rangkaian pengepungan, Romawi kehilangan 30.000 infanteri dan 540 kavaleri atau kemungkinannya, total sepertiga dari 40.000–50.000 pasukannya. Kerugian Romawi yang tinggi dan melarikan diri dari tentara Kartago berarti bahwa tidak ada kemenangan diberikan untuk para konsul.

Penulis Bizantium Zonaras mencatat bahwa Hanno mengerahkan pasukannya untuk berperang, tetapi pasukan Romawi menolak untuk berperang karena bercermin dari kekalahan kavaleri sebelumnya. Ketika kekurangan bahan makanan menjadi lebih parah, para konsul akhirnya memutuskan untuk bertempur. Hanno awalnya ingin mengoordinasikan serangannya dengan serangan Hannibal, tetapi pasukan Romawi menyadari rencana tersebut. Kemudian akhirnya pasukan Romawi menyergap Kartago dari belakang, sehingga ketika Hanno menyerang mereka, dia dikalahkan dari depan dan belakang. Pasukan Romawi juga berhasil mematahkan serangan oleh garnisun Kartago.

Versi pertempuran yang lebih memungkinkan adalah bahwa Hanno mengerahkan infanteri Kartago dalam dua baris, dengan gajah dan bala bantuan di barisan kedua dan kavaleri kemungkinan besar ditempatkan di sayap. Rencana pertempuran pasukan Romawi tidak diketahui, tetapi biasanya mereka terorganisir dalam bentuk formasi 'tripleks asies', yakni strategi pertempuran dengan aturan formasi tiga lapis. Semua sumber-sumber setuju menyatakan bahwa pertempuran tersebut panjang dan akhirnya pasukan Romawilah yang berhasil mematahkan front Kartago. Hal ini memicu kepanikan di belakang dan pasukan cadangan yang melarikan diri dari medan pertempuran. Juga terdapat kemungkinan bahwa gajah-gajah tersebut juga panik dan dalam pelariannya mengacaukan susunan formasi Kartago, sehingga pasukan Romawi berhasil mengalahkan musuh dan memenangkan pertempuran. Kavaleri Romawi berhasil menyerang kamp Kartago dan menangkap beberapa gajah. Namun hal ini tidak berhasil seluruhnya, sebagian besar pasukan musuh melarikan diri, kemudian Hannibal Gisco, bersama dengan garnisun Agrigento, juga berhasil menembus garis pertahanan Romawi dan melarikan diri demi keamanan.

Terlepas mana dari tiga versi yang benar, Pasukan Romawi berhasil mengalahkan Kartago dan memaksa Hanno untuk mundur. Pada malam setelah pertempuran, Hannibal berhasil melarikan diri dari Agrigento bersama tentara bayarannya dengan mengisi parit-parit Romawi dengan jerami. Kemudian keesokan harinya, pasukan Romawi berhasil mengejar Hannibal dan garnisunnya lalu menyerang barisan belakang, tetapi akhirnya berbalik untuk mengambil alih Agrigento. Sambil merebut kota tanpa perlawanan, mereka menjarah kota dan menjual 25.000 penduduknya menjadi budak.