Dopo una prima fase di scontri terrestri, dove i Romani risultarono vincitori, Roma decise di sfidare i Cartaginesi sul mare, che ne avevano il dominio assoluto, e, approntata un'imponente flotta (con navi dotate di "corvo"), sconfisse i nemici a Milazzo (nel 260 a.C.). Nel tentativo di infliggere una sconfitta decisiva a Cartagine, il console Marco Atilio Regolo, sconfitta la flotta nemica a Capo Ecnomo (256 a.C.), sbarcò in Africa, non molto distante dalla stessa Cartagine, dove fu però sconfitto ed ucciso (nel 246 a.C.). La guerra continuò negli anni successivi, con alterne fortune tra i due contendenti, fino a quando nel 241 a.C., venne approntata da Roma una nuova flotta che, guidata da Gaio Lutazio Catulo, sconfisse nuovamente i Cartaginesi nella decisiva battaglia delle isole Egadi. Sottratto ai nemici il predominio sul mare, i Romani poterono concludere anche le operazioni terrestri, sottomettendo buona parte della Sicilia (a parte Siracusa, che rimaneva indipendente) e costringendo Cartagine alla resa. La guerra era così protratta per oltre vent'anni, dal 264 a.C. al 241 a.C.