Por el contrario, Roma envió al general Publio Cornelio Escipión, quien sitió la ciudad tanto por mar como por tierra, y tras una dura batalla logró tomar la plaza.