— И здесь вижу я перст Провидения: мало славы было разбить шарлатана. Лавры, которые похитим у Моро, будут лучше цвести и зеленеть!
Моро принял армию при крайне неблагоприятных обстоятельствах — растянутость позиции могла обернуться поражением. Он попытался спасти положение, поспешно приказав сосредоточить дивизии — Гренье и Виктора у Ваприо и Кассано, Серюрье — у Бревио. Но Суворов не дал противнику произвести перегруппировку. В ночь на 16 апреля у Сан-Джервазио, против Треццо, саперы австрийской дивизии Отта начали сооружать понтонный мост.
Чтобы не привлекать внимания французов, нарочно было выбрано самое неудобное для переправы место: крутой изгиб реки, чрезвычайно быстрое течение и утесистый берег. Убежденные в том, что мост навести здесь невозможно, тем более в ночное время, французы даже не выставили постов на берегу. Они осознали свою ошибку лишь к утру, когда несколько сот австрийских егерей и казаков уже перешли по мосту. Начала переправляться дивизия Отта, за нею казачьи полки Денисова, Молчанова и Грекова, прибывшие из Лекко, и, наконец, дивизия Цопфа.
Успех обеспечили стремительные казаки во главе с походным атаманом Денисовым. Они быстро обскакали Треццо с севера и погнали французов к Поццо и Ваприо. Моро, поняв, что именно в этом пункте будет произведена главная атака союзников, поспешил на место боя и сам едва не попал в плен к казакам, добравшимся уже до главной ставки французской армии в Инцаго. Он послал приказание генералам Гренье и Виктору ускорить движение к Ваприо. Появившийся Гренье остановил дивизию Отта, а затем, дождавшись подкреплений, сам перешел в наступление. На помощь Отту подоспел с двумя головными батальонами и двумя эскадронами дивизии Цопфа маркиз Шателер. Однако и он не смог сдержать напора французов. Один из австрийских батальонов был весь искрошен вражеской кавалерией.
Вновь отличился атаман Денисов. Собрав все три казачьих полка, он вместе с венгерскими гусарами атаковал левый фланг и оттеснил французов к Поццо. По словам Суворова, «казаки кололи везде с свойственною россиянам храбростию, побуждаемы будучи мудрым и мужественным воином, их походным атаманом Денисовым, как в его сотовариществе полковником Грековым». Приспел от Милана французский кавалерийский полк, но казаки управились и с ним, захватив множество пленных, в их числе и генерала Бекера. После упорного боя дивизия Цопфа заняла деревни Поццо и Ваприо. Моро еще надеялся удержаться на позиции между Кассано и Инцаго, но сильная канонада, а затем вид бегущих со стороны Кассано французских солдат обеспокоили его — грозило окружение.
Одновременно с переправой через Адду у Треццо Суворов приказал Меласу направить дивизии Кейма и Фрёлиха к Кассано. Затем эти части должны были перейти Адду у Горгонцоле и отрезать французам путь к отступлению. Медлительность и вялость австрийцев не позволили до конца выполнить этот план. В течение шести часов тринадцать тысяч солдат Кейма и Фрёлиха безрезультатно штурмовали предмостные укрепления, защищаемые одной французской полубригадой в составе двух тысяч человек. Энергичный Моро успел за это время подтянуть к Кассано часть дивизии Виктора. К четырем пополудни из Треццо прибыл сам Суворов.
С его появлением австрийские войска словно преобразились, исчезли пассивность и нерешительность. Сделав небольшую перегруппировку и повелев выставить батарею из тридцати орудий, фельдмаршал воодушевил войска на новую решительную атаку. Австрийцы так быстро ворвались в неприятельское расположение, что французы не успели поджечь за собой мост и бросили орудия. В числе убитых был республиканский генерал Аргу. Дивизии Кейма и Фрёлиха все-таки вышли в тыл французам, отступавшим от Ваприо. Австрийские колонны были, однако, так измучены непрерывным двенадцатичасовым сражением, что остановились прямо в поле. Одни «залетные» донцы преследовали неприятеля.
В ночь на 17 апреля корпус Вукасовича сбил вражеские посты у Бревио и, переправившись через Адду, оттеснил генерала Гилье.
Последним драматическим эпизодом битвы при Адде было поражение генерала Серюрье. Республиканской армии приходилось расплачиваться за ошибки Шерера. В продолжение всего 16 апреля, пока длился бой у Ваприо и Кассано, в восьми верстах от сражения, можно сказать, за спиною у австрийцев, бездействовала трехтысячная группировка Серюрье. Пунктуальный генерал, ожидая указаний от Моро, оставался у деревни Падерно. Он даже не подозревал, что битва уже проиграна. Утром 17 апреля корпус Вукасовича наткнулся на французов. Те сперва упорно оборонялись, но когда Серюрье увидел подходившие войска Розенберга, то понял, что дальнейшее сопротивление бессмысленно, и сложил оружие.