К моменту великой битвы положение двух воюющих сторон было довольно неопределенным. С одной стороны, карфагенский полководец Ганнибал, начавший в 218 году до н. э. свой поход на Италию, одержал ряд побед. При реке Треббии, а затем при Тразименском озере ему удалось разгромить две крупные римские армии. С другой стороны, Рим, осознавший наконец всю опасность войны со столь талантливым полководцем, сумел собрать силы, значительно превышавшие силы Ганнибала. Накануне сражения римская армия насчитывала восемьдесят шесть тысяч воинов, из них восемьдесят тысяч пехоты и шесть тысяч конницы. У Ганнибала было только пятьдесят тысяч солдат, но он имел большое превосходство в коннице: его африканская кавалерия насчитывала десять тысяч человек. Можно говорить и о психологическом преимуществе карфагенян – римская армия в своей значительной части состояла из новобранцев, у Ганнибала же были только ветераны, уже не раз громившие римлян.
Тем не менее, большое численное превосходство привело к всплеску в Риме реваншистских настроений. Демократические круги народного собрания требовали решительных действий, и на 216 год до н. э. консулами были избраны опытный военачальник Луций Эмилий Павел и популярный в народе сторонник немедленных решительных действий Гай Теренций Варрон. Они встали во главе объединенной армии, при этом, как было принято у римлян, командовали ею поочередно: один по четным дням, другой по нечетным. И это консульское двоевластие стало одной из существенных причин последующей катастрофы.
Летом 216 года до н. э. карфагеняне захватили продовольственный склад римской армии, находившийся в городке Канны, рассчитывая этим вызвать римлян на решительный бой. Карфагенская армия расположилась под Каннами в укрепленном лагере и держала под своим контролем всю окружающую территорию. Настроение войск римских союзников было неустойчивым, поскольку противник разорял страну. В данной обстановке сенат высказался за то, чтобы дать решительный бой. Консулы получили от сената указания «кончить войну мужественно и достойно отечества, когда наступит благоприятный для того момент». Они объявили решение сената, разъяснили воинам причины прежних неудач (недостаточная выучка, отсутствие боевого опыта, малое знание противника) и заявили, что при настоящих обстоятельствах, если только воины будут мужественны, нельзя назвать ни одной причины, ни одного препятствия к тому, чтобы победа была за ними. После этого римские легионы двинулись к Каннам и через два дня встали лагерем в двух километрах от противника. Силы римлян численно превосходили силы карфагенян почти вдвое, но карфагенская армия имела важное преимущество: количественное и особенно качественное превосходство конницы, использовать которую позволяла совершенно открытая равнина. В этих условиях Эмилий Павел считал необходимым воздержаться от боя, отодвинуть армию дальше, увлечь за собой карфагенян и потом дать бой на позиции, удобной для пехоты. Теренций Варрон держался противоположного мнения и требовал боя на равнине под Каннами.
1 августа римской армией командовал Варрон; он приказал легионам сняться с лагеря и двинуться навстречу противнику. Эмилий был против этих действий, но Варрон не обращал внимания на все его возражения. Навстречу римлянам Ганнибал двинул свою конницу и легковооруженных пехотинцев и неожиданно атаковал римские легионы во время движения, внеся замешательство в их ряды. Но затем римляне выдвинули вперед отряд тяжеловооруженной пехоты, подкрепив его метателями дротиков и конницей. Атака карфагенян была отражена, и они вынуждены были отступить. Этот успех еще больше укрепил Варрона в его стремлении к решительному бою. На следующий день Эмилий уже не мог безопасно отвести легионы, так как римляне находились в непосредственном соприкосновении с противником.
2 августа, лишь только показалось солнце, римские войска вышли сразу из обоих лагерей и стали выстраивать боевой порядок на левом берегу реки Ауфид, фронтом на юг. Часть римской конницы поместили у самой реки на правом крыле; к ней в той же линии примыкала пехота, причем манипулы были поставлены гораздо теснее, чем прежде, и всему строю была дана большая глубина, чем ширина. Другая часть конницы (конница союзников) встала на левом крыле. Впереди всего войска, в некотором отдалении, расположились отряды лучников и пращников. Боевой порядок римлян занимал по фронту около двух километров. Тяжеловооруженная пехота была выстроена в три линии по двенадцать шеренг в каждой, то есть в глубину – тридцать шесть шеренг (по другим данным, в три линии по шестнадцать шеренг, то есть всего сорок восемь шеренг). Столь мощная глубина строя могла подразумевать одну-единственную тактику – фронтальное наступление. Резервы на случай непредвиденных действий противника вообще не предусматривались. Легионы и манипулы строились с сокращенными интервалами и дистанциями; на левом фланге выстроилась четырехтысячная конница под командованием Варрона, на правом фланге – двухтысячная конница под командованием Эмилия. Восемь тысяч легковооруженных пехотинцев прикрывали боевой порядок. Десять тысяч легионеров оставались в лагере, семь тысяч человек охраняли обоз. Таким образом, непосредственными участниками битвы стали шестьдесят девять тысяч римлян.