The Romans held off Hannibal in three battles, but then Hannibal smashed a succession of Roman consular armies. In which battle was Hannibal clearly defeated at?