Австрийский фельдмаршал М. Мелас.
13 апреля казаки полковника Грекова ворвались в город Бергамо и овладели им. При этом в плен попали более ста французов, а 46 орудий стали трофеями союзников. На следующий день Суворов прибыл к Адде. Главные силы начали подтягиваться туда же, но в разные районы. Основные силы, куда входили русские войска под командованием Розенберга и австрийские дивизии Вукасовича, Отта и Цопфа (общей численностью около 26 тыс. человек), должны были форсировать Адду на участке Бривио, Треццо и затем развивать наступление на Милан. Отряд Багратиона (3 тыс. человек) должен был занять город Лекко, расположенный на восточном (левом) берегу Адды, и в дальнейшем имел задачей идти в направлении Монцы на Милан. Кроме этих сил, в резерве Суворов оставил дивизии Кейта и Фрелиха (13 тыс. человек), стоявшие в районе Тревилио.
Командующий французской Итальянской армией, дивизионный генерал Ж.В. Моро.
Таким образом, главный удар наносился основной массой сил (26 тыс. человек), и при этом оставался мощный резерв. Общая задача состояла в форсировании Адды и наступлении на Милан. В случае задержки переправы Суворов предполагал переправиться у Кассано и затем двигаться на Милан. В это же время должен был начать наступление отряд Гогенцоллерна, получивший задачу форсировать Адду у Лоди и двигаться в направлении Павии.
Первый удар французам был нанесен 15 апреля у Лекко. Он имел отвлекающий характер, чтобы ввести неприятеля в заблуждение относительно направления главного удара. Этот город занимал французский отряд генерала Сойе численностью 5 тыс. человек при шести орудиях. В 8 часов 15 апреля отряд Багратиона мощным броском атаковал французский гарнизон и выбил его из города. Французы отступили на северную окраину города. Однако они быстро пришли в себя, оценили силы русских и перешли в контрнаступление. К 16 часам положение отряда Багратиона стало плачевным. Он запросил помощи. Три батальона Милорадовича и Повало-Швейковского помогли Багратиону вновь перейти в наступление и к 20 часам того же дня снова занять Лекко, отбросив французов далеко на север. Потери русских в боях у Лекко составили 365 человек (убитыми, ранеными и пленными), французов — около тысячи человек.
В этот же день был смещен командующий Итальянской армией Шерер, а его место занял генерал Моро. Он был одним из лучших военачальников Франции. Моро произвел перегруппировку своих войск, стоявших на Адде. Главные силы он сосредоточил в районе Треццо и Кассано. Тем самым он верно определил район, где Суворов намеревался нанести главный удар. Однако времени на перегруппировку уже было слишком мало. На нее ушли целые сутки. Тем не менее эти действия позволили французам в дальнейшем оказать гораздо большее сопротивление союзным войскам.
Отвлекающий удар по Лекко оказался очень полезным. Дивизия Серюрье, переместившаяся, по приказу Моро, от Лекко к Треццо, дошла до этого города и, оставив там один батальон, повернула обратно. Французы считали, что переправа через Адду у Треццо невозможна в силу характера местности, поэтому в ночь с 15 на 16 апреля не оставили на берегу ни сторожевых постов, ни прикрытия. Дело в том, что восточный берег Адды в этом месте очень крут, что делает спуск понтонов и войск почти невозможным. Зато здесь небольшая ширина реки и удобный западный берег. Суворов учел все эти обстоятельства и приказал начать наведение моста именно в районе Треццо.
В ночь с 15 на 16 апреля в кромешной темноте и полной тишине понтонеры дивизии Отта начали сооружать мост. К утру 16 апреля он был готов. Первыми реку перешли авангардные части дивизии Отта, затем — казачьи полки Денисова, Молчанова и Грекова, за ними — остальные силы дивизии Отта, и, наконец, последней переправилась дивизия Цопфа.
Французы были поражены внезапным появлением передовых частей дивизии Отта и казаков на окраинах Треццо. Этот единственный батальон можно было быстро уничтожить, однако медлительность австрийцев позволила французам подготовиться к обороне города. Успех дела был предрешен действиями казаков, которые обошли Треццо с севера и ударили по неприятелю так, что тот начал беспорядочное отступление на Поццо. Благодаря этим действиям переправа остальных сил союзных войск через Адду прошла без проблем.
Поскольку положение французов становилось все хуже, Моро приказал дивизии Гренье занять новую позицию на участке Ваприо — Поццо фронтом на север и встретить части Отта, идущие от Треццо. Австрийцы не смогли преодолеть оборону французов, которые стали теснить австрийцев обратно к Треццо.
Утром 16 апреля Суворов бросил в бой резерв — дивизии Фрелиха и Кейма. Их задачей было наступление от Тревилио на Кассано, где они должны были переправиться через Адду, захватить Кассано и затем наступать на Горгонцолу. Этим маневром предполагалось окружить и уничтожить главные силы французов.
Сражение на реке Адда у Кассано. Фрагмент картины художника Н. Скиавонетти.
Моро понял этот замысел Суворова, но считал, что главная опасность исходит все же от Треццо, где находились русские войска и сам Суворов. А со стороны Кассано наступали австрийцы численностью 13 тыс. бойцов. В течение семи часов они вели сражение с одной 106-й полубригадой французов (2 тыс. человек) и не одолели их. Поэтому Моро продолжал вести бой у Ваприо, в 2 км севернее линии Ваприо — Поццо. В бой пошли обе дивизии Отта и Цопфа, однако французы все наступали. В это время в 2 км северо-западнее Поццо сосредоточились казачьи полки Грекова, Денисова и Молчанова. Денисов объединил все эти полки под своим командованием и бросил их на левый край французов в направлении на Поццо. Неприятель не выдержал и побежал к юго-востоку от Поццо. После этого отряд Денисова напал на подходивший от Горгонцолы 24-й конно-егерский полк французов и разбил его.
Видя ухудшающееся положение своих войск, Моро приказал дивизии Гренье отходить на линию Кассано — Инцаго. Французы успешно обороняли Кассано от австрийских дивизий Фрелиха и Кейма, которыми руководил Мелас. Суворов был вынужден прибыть на этот участок фронта. Тем временем защитники города (106-я полу бригада) пополнились бригадой Арно из дивизии Виктора. Проведя небольшую перегруппировку и выставив 30 орудий, Суворов приказал снова атаковать неприятеля. Французы не выдержали и стали отступать на западный берег реки Адды, причем из-за поспешности не успели разрушить за собой мост. Около шести часов вечера австрийцы ворвались в Кассано.
После потери Кассано Моро приказал войскам отходить на Мельцо и далее на Милан. Уставшие австрийцы почти не преследовали врага. Этим занимались русские казаки.
Последним актом сражения у реки Адда стал бой у Вердерио, в котором войска Вукасовича и Розенберга разгромили трехтысячный отряд из дивизии генерала Серюрье. После этого французская Итальянская армия начала общее отступление. Суворов организовал ее преследование. Дорога на Милан была свободна. Этот итальянский город защищала дивизия Серюрье. Последний без сопротивления капитулировал. Первыми в город вошли русские казаки, затем — передовые отряды войск Меласа. 18 апреля, в день Пасхи, к Милану подъехал Суворов. Мелас среди большой толпы народа встречал его у городских ворот. Царила праздничная светлая атмосфера. Суворова встретили с огромным воодушевлением как спасителя и избавителя. В Милане ему был оказан блестящий и пышный прием, как, впрочем, и три года назад Наполеону.