На участке обороны немцев у Сапун-горы Толбухин сосредоточил от 205 до 258 стволов артиллерии и миномётов на километр фронта. Специально для Севастополя из Резерва Главнокомандования были доставлены несколько десятков 203-мм гаубиц Б-4. Кроме того, из состава гвардейских миномётных частей фронта здесь действовало три из четырёх гвардейских миномётных бригад М-31, восемь из десяти гвардейских миномётных полков, три отдельных горно-вьючных дивизиона. Всего по Сапун-горе вели огонь 604 пусковые установки реактивных снарядов М-8, М-13 и М-30.
Серьезную поддержку наступавшим войскам оказывала 8-я воздушная армия, которая произвела 7 мая 2105 самолёто-вылетов. К этому времени в составе 8-й армии имелось 1023 самолёта, из них 141 бомбардировщик, 134 лёгких бомбардировщика По-3, 461 штурмовик Ил-2. А у немцев в Крыму осталось лишь 10 пикирующих бомбардировщиков Ю-87, 60 истребителей и 20 разведчиков.
По приказу маршала Ворошилова первыми в атаку на Сапун-гору пошли штрафные батальоны (всего не менее 5 тысяч человек). Ни один из них не дошел до вершины. В многочисленных официальных трудах, посвященных взятию Севастополя в 1944 г., нет ни слова о штрафниках. Зато о них часто упоминают в своих воспоминаниях участники штурма – солдаты и младшие офицеры.
Ураганный огонь артиллерии и мужество советских солдат сделали свое дело – укрепления Сапун-горы были взяты за 9 часов непрерывного штурма.
На второй день штурма, 8 мая, больших успехов достигла 2-я гвардейская армия. Войска 13-го гвардейского и 55-го стрелкового корпусов выбили противника с Мекензиевых гор и к вечеру подошли к Северной бухте. Остатки немецкой 50-й пехотной и румынской 2-й горнострелковой дивизий были отрезаны от главных сил и прижаты к морю.
В этот же день войска 51-й и Приморской армий прорвали главную полосу обороны противника и вышли к внутреннему обводу обороны города.
Еще 22 апреля штаб Адмирала Черного моря и штаб 17-й армии разработали план операции «Леопард» для планомерной эвакуации из крепости Севастополь в течение 14 дней. В соответствии с ним, после эвакуации большей части армии должен был отходить северный фронт обороны, через пять дней после подхода транспортов предполагалось в течение двух суток эвакуировать оставшихся 28 тыс. солдат морем и 4500 человек авиацией.
8 мая в 21 час 15 мин. командующий группой армий генерал-полковник Шернер доложил начальнику Генштаба сухопутных войск о катастрофическом положении 17-й армии в Крыму, и в 23 часа он получил разрешение Гитлера на эвакуацию. С 23 ч. 10 мин. до 23 ч. 35 мин. Шернер сообщил об этом приказе начальнику штаба 1-го авиационного корпуса и Адмиралу Черного моря. Отправка подкреплений в Крым отменялась. 9 мая в 2 ч. 15 мин. приказ был получен в штабе армии.
Сразу после получения приказа об отходе командование 17-й армии решило отвести все имеющиеся силы на позицию у Николаевки, однако уже в середине того же дня от этого замысла пришлось отказаться, так как советские войска прорвались в город и в порт Севастополь.
Портовые сооружения Севастополя были разрушены группой морских саперов. 1-я десантная флотилия заминировала Северную, Южную и Стрелецкую бухты. Всего была поставлена 71 донная мина.
9 мая остатки немецких войск, неся тяжёлые потери, заняли последний херсонесский оборонительный рубеж. Остатки 73-й пехотной дивизии были опрокинуты советскими войсками. Этим была нарушена оборона на южном участке. Севернее немецкие командиры предприняли неудачную контратаку, пытаясь отбить позицию у Николаевки. После этого наступательный порыв немцев окончательно был исчерпан. Позиции 98-й пехотной дивизии, часть которой ещё оборонялась у Инкермана, а главные силы контратаковали Сапун-гору, были прорваны. Остатки защищавших северный сектор 50-й и 336-й пехотных дивизий вынуждены были пробиваться через части противника, начавшие переправляться через Северную бухту.
9 мая советская артиллерия открыла огонь по аэродрому у мыса Херсонес. Вечером того же дня 13 последних немецких истребителей вылетели на материк. Только транспортные самолёты Ю-52 ночами с 9 на 10 и с 10 на 11 мая продолжали садиться на вспомогательных полосах для эвакуации раненых. 50 самолётов Ю-52 в последнюю ночь были сильно перегружены (в каждом перевозилось до 30 раненых), но всего было вывезено до тысячи человек. Самолёты Хе-111 8 мая использовали также любую возможность для вывоза раненых. Всего с 12 мая самолётами на материк было вывезено 21 457 солдат, из них 16 387 раненых. С 4 по 14 мая самолёты 1-го воздушного корпуса совершили 2342 самолёто-вылета. Из них с аэродромов в Севастополе – 809 вылетов, с материка в интересах сухопутных войск – 398, для охранения конвоев – 803, для морской разведки – 245 и с целью спасения на море – 87 вылетов.