7 марта 1921 года силы 7-й армии насчитывали 17,6 тыс. красноармейцев: в Северной группе – 3683 бойцов, в Южной группе – 9853, в резерве – 4 тысячи человек. Основной ударной силой являлась сводная дивизия под командованием П. Е. Дыбенко, в состав которой вошли 32-я, 167-я и 187-я бригады РККА. Одновременно началось выдвижение к Кронштадту 27-й Омской стрелковой дивизии. В 18 часов начался артобстрел крепости. На рассвете 8 марта 1921 года, в день открытия Х съезда РКП(б), солдаты Красной армии пошли на штурм. Первый приступ был отбит, и войска с потерями отступили на исходные рубежи. Как отмечал К. Е. Ворошилов, после неудачного штурма «политико-моральное состояние отдельных частей вызывало тревогу», два полка 27-й Омской стрелковой дивизии (235-й Минский и 237-й Невельский) отказались участвовать в сражении и были разоружены.
По состоянию на 12 марта 1921 года силы восставших насчитывали 18 тысяч солдат и матросов, 100 орудий береговой обороны. А с учетом корабельных орудий линкоров «Севастополь» и «Петропавловск» – 140 орудий, свыше 100 пулеметов с большим количеством боеприпасов.
При подготовке ко второму штурму численность группы войск Красной армии была доведена до 24 тысяч штыков, 159 орудий, 433 пулеметов, подразделения были реорганизованы в два оперативных соединения:
В действующие части для усиления и контроля направили отряд сотрудников Петроградской губернской милиции – 182 человека, около 300 делегатов X съезда партии, 1114 коммунистов и три полка курсантов нескольких военных училищ. Была проведена разведка, подготовлены белые маскхалаты, доски и решетчатые мостки для преодоления ненадежных участков на льду у острова. Да и вся поверхность Финского залива зияла сотнями ледяных воронок от взрывов тяжелых снарядов.
Второй штурм начался в ночь на 16 марта 1921 года. Перед началом боя атакующие сумели скрытно занять форт № 7 (он оказался пустым), однако форт № 6 оказал продолжительное и ожесточенное сопротивление. Форт № 5 сдался после начала артиллерийского обстрела, но до того, как к нему подошла штурмовая группа. Гарнизон форта не оказал сопротивления. Курсантов встретили возгласами: «Товарищи, не стреляйте, мы тоже за Советскую власть!». Однако соседний форт № 4 держался несколько часов, и в ходе штурма атакующие понесли здесь тяжелые потери. С тяжелыми боями войска овладели также фортами № 1, № 2 («Милютин» и «Павел»). Однако батарею «Риф» и батарею «Шанец» защитники покинули до начала штурма и по льду залива ушли в Финляндию.
В середине дня 17 марта 1921 года 25 советских самолетов совершили налет на линкор «Петропавловск». После захвата фортов красноармейцы ворвались в крепость, начались ожесточенные уличные бои, однако к 5 часам утра 18 марта сопротивление кронштадтцев было сломлено.
18 марта 1921 года штаб восставших, который находился в одной из орудийных башен «Петропавловска», принял решение уничтожить линкоры вместе с арестованными, находившимися в трюмах, и прорываться в Финляндию. Восставшие заложили несколько пудов взрывчатки под орудийные башни. Однако это распоряжение вызвало возмущение. На «Севастополе» старые матросы разоружили и арестовали восставших. После чего выпустили из трюма коммунистов и радировали, что на корабле восстановлена Советская власть. Некоторое время спустя после начала артиллерийского обстрела сдался и «Петропавловск», который уже покинули большинство восставших.
По данным советских источников, штурмующие потеряли 527 человек убитыми и 3285 ранеными. При штурме погибло около 1 тысячи восставших, свыше 2 тысяч было «ранено и захвачено в плен с оружием в руках». Более 2 тысяч человек сдались в плен. Около 8 тысяч ушли в Финляндию по еще довольно крепкому льду.
Следом началась жестокая расправа не только над теми, кто держал в руках оружие, но и над населением, поскольку все жители мятежного города считались виновными. К высшей мере наказания были приговорены 2103 человека, а к различным срокам заключения – 6459 человек. Брать заложников продолжали и после того, как Кронштадт пал. Арестовывали родственников руководителей ВРК и военных специалистов, которые ушли из Кронштадта в Финляндию. С весны 1922 началось массовое выселение жителей Кронштадта с острова. В течение последующих лет оставшиеся в живых участники кронштадтских событий позднее неоднократно вновь были репрессированы.
Но весной 1921 году большевистское правительство объявило об окончании Военного коммунизма и переходе к НЭПу – Новой экономической политике.