Черноморский флот получил задачу силами авиации и боевых кораблей блокировать группировку противника с моря, уничтожать его плавсредства в порту, бухтах и на переходах морем. С целью лучшего управления 15 апреля была сформирована Севастопольская военно-морская база с временным пребыванием ее в Ялте. В нее вошли 1-я и 2-я бригады торпедных катеров. Флот в отличие от армии не мог похвастать особыми успехами.
Гитлер не зря снял с поста генерала Енеке: операция «Адлер» развивалась полным ходом, и развивалась успешно. В эвакуации приняли участие 13 относительно крупных и 6 малых транспортов, 2 румынских вспомогательных судна, немецкие самоходные баржи и силы охранения — в общей сложности около 170 кораблей и судов. С 10 апреля по 4 мая 37 конвоев вывезли из Крыма 92 000 военнослужащих, около 11 000 гражданских лиц и 3800 военнопленных. Еще 21 конвой доставил в Севастополь боеприпасы, горючее и продовольствие. В результате 31 атаки советских самолетов, 12 атак подводных лодок и 2 атак торпедных катеров из состава конвоев были потоплены танкер «Оссар», лихтер «Лео», 2 буксира и катер-охотник. Еще 3 транспорта и одна БДБ получили повреждения. Общие потери противника в людях составили 850 человек. За те же 20 дней советская морская авиация потеряла 59 самолетов, на базу не вернулась подводная лодка Л-6.
До последних дней «экспресс Севастополь — Констанца» работал бесперебойно, Черноморскому флоту так и не удалось прервать морские сообщения противника.
В 10 часов 5 мая артиллерия 2-й гвардейской армии открыла огонь. Два часа она громила оборону противника. Авиация нанесла бомбардировочные и штурмовые удары по объектам, не досягаемым для артиллерии. В это же время 51-я и Приморская армии в своих полосах действиями отдельных отрядов демонстрировали атаку.
В 12 часов дня войска Захарова пятью стрелковыми дивизиями перешли в наступление против 336-й саксонской дивизии генерала Хагемана и к 19 часам захватили вторую траншею, продвинувшись до 1–2 км. Бои носили очень упорный характер. Командарм решил с утра следующего дня ввести в бой вторые эшелоны корпусов и развивать наступление. Утром 6 мая войска армии возобновили атаку. Встречая организованное сопротивление, они к исходу дня лишь местами смогли продвинуться до одного километра.
Наступление 2-й гвардейской армии, несмотря на ограниченный успех, приковало внимание противника к этому участку. Генерал Альмендингер поверил, что главный удар наносится с севера, и перебросил сюда часть сил и большое количество зенитной артиллерии. 7 мая в 10.30 на участке Сапун-гора — Карань после полуторачасовой артподготовки при поддержке всей авиации фронта штурм Севастопольского укрепленного района начали левофланговые соединения 51-й и Приморской армий. С первых же минут завязались кровопролитные бои. Особенно тяжелыми они были в районе Сапун-горы, которую атаковали шесть дивизий.
Однако к вечеру ключ к обороне города был в советских руках, все попытки немцев отбить высоту были тщетны. Корпуса Приморской армии в этот день почти не продвинулись. Советское командование немедленно использовало благоприятные возможности для наращивания усилий в районе Сапун-горы. В течение ночи сюда был выдвинут 10-й стрелковый корпус генерала Г.П. Неверова.
В полосе 2-й гвардейской армии сумела продвинуться вперед 347-я стрелковая дивизия, создав благоприятные условия для развития удара в направлении Мекензиевых Гор. Поэтому Захаров дал указание в ночь на 8 мая перебросить часть сил 13-го гвардейского корпуса к правому флангу 55-го стрелкового корпуса.
К 3 часам перегруппировка завершилась, и передовые отряды начали немедленное наступление, а в 7 часов атаковали и главные силы. К исходу дня Мекензиевы Горы были взяты, и войска 2-й гвардейской достигли Северной бухты. Северная группировка противника в составе 50-й немецкой пехотной и 2-й горнострелковой дивизии румын была отсечена от своих главных сил и прижата к морю.
В полосе 51-й армии противник был оттеснен к внутреннему обводу Севастополя.
Войска Приморской армии в этот день на правом фланге силами 11-го гвардейского стрелкового корпуса также вышли к внутреннему обводу, а на левом фланге 3-й горнострелковый и 16-й стрелковый корпуса продвинулись от 2 до 6 км, завершив прорыв главной полосы обороны, овладев населенным пунктом Карань. Создались благоприятные условия для развития удара в направлении мыса Херсонес. В связи с этим по указанию командующего фронтом 19-й танковый корпус в ночь на 9 мая выводился в исходный район с задачей войти в сражение в полосе 3-го горнострелкового корпуса и развивать удар в направлении Камышевой бухты.
Поздним вечером 8 мая, получив от генерала Шернера доклад о том, что дальнейшая оборона Севастополя невозможна, Гитлер дал согласие на отступление на Херсонесские позиции и эвакуацию 17-й армии.
Начался заключительный этап борьбы. В ночь на 9 мая авиация дальнего действия нанесла удары по кораблям и транспортам противника в бухтах Северной, Камышевой, Казачьей и Стрелецкой, а также по аэродрому на мысе Херсонес. Самолеты 8-й воздушной армии ночью и утром бомбардировали и штурмовали войска, технику и узлы сопротивления.
Противник продолжал упорно сопротивляться уже не с целью удержания Севастополя, а для того, чтобы обеспечить более или менее планомерную эвакуацию войск.
2-я гвардейская армия в ночь на 9 мая силами стрелкового полка от каждой дивизии продолжала наступление, не позволяя северной группировке противника ни опомниться, ни привести свои части в порядок. В эту ночь в районе Северной косы был высажен десантный отряд в составе стрелкового батальона 387-й дивизии, который сыграл важную роль в овладении северной стороной Севастополя.
Выход советских войск на побережье Северной бухты на всем ее протяжении имел чрезвычайно важное значение. Тылы неприятельской группировки, оборонявшейся в Севастополе, сразу оказались под угрозой. Артиллерия 2-й гвардейской армии прямой наводкой била по огневым средствам, живой силе и транспортам противника в районе Южной бухты, а также в бухте Стрелецкой.
Под прикрытием огня более чем 600 орудий дивизии Захарова начали форсировать Северную бухту. В дело шло все, даже гробы: «Немцы много гробов заготовили. Вот и пустим их в дело… Прошли минута, две, и вот на волнах закачались гробы с облепившими их солдатами». Водная гладь бухты напоминала холст Босха: перемешались люди, гробы и лошадиные трупы.
«В соответствии с приказом на эвакуацию всех лошадей застрелили и сбросили в море. Они стояли в очереди, терпеливо ожидая, когда придет их час. Бухта была забита тысячами лошадиных трупов. Волны покачивали их вверх и вниз… Румыны сочли, что слишком долго убивать каждого старого друга в отдельности, поэтому они пригнали животных к обрыву и стреляли из пулеметов. Несколько часов подряд».
Армия Крейзера также продолжала наступление ночью на 9 мая специально выделенными полками, а с утра — главными силами. Соединения 1-го гвардейского стрелкового корпуса овладели Корабельной слободой, а 63-й и 10-й стрелковые корпуса к 15 часам ворвались в юго-западную часть города.
К исходу 9 мая город Севастополь был полностью освобожден советскими войсками, причем, судя по всему, город противник оставил беспрепятственно. Вот что вспоминает полковник М.И. Новичихин, бывший сотрудник разведотдела 10-го стрелкового корпуса:
«Мы вошли в Севастополь. И тут немцы осуществили такую провокацию: они распространили дезинформацию, что война окончена. Началось братание, стрельба в воздух из боевого и личного оружия. Артиллеристы расстреляли весь боекомплект, а кто стрелял из личного оружия — все патроны. Органы СМЕРШ пытались прояснить обстановку, но это удалось не сразу».
Войска Приморской армии главными силами вместе с 19-м танковым корпусом, введенным в сражение утром 9 мая, развивали наступление в направлении мыса Херсонес, куда отходили остатки 17-й армии.
На заранее подготовленном рубеже, прикрывавшем мыс Херсонес, противник оказал отчаянное сопротивление. Здесь он сосредоточил наиболее стойкие части из остатков немецких дивизий и всю наличную артиллерию — всего около 30 000 офицеров и солдат. По немецким данным, на полуострове находилось 50 000 человек. Основную оборонительную линию составляла непрерывная траншея с многочисленными ходами сообщения. Были возведены бетонные блиндажи, сосредоточены запасы боеприпасов, продовольствия и воды. Однако последний немецкий аэродром теперь полностью накрывался советской артиллерией, и самолеты Дихмана были вынуждены покинуть Крым. Торпедные катера по ночам вывозили личный состав. Общую погрузку армии планировалось осуществить в ночь с 10 на 11 мая, для чего выделялось более 190 немецких и румынских кораблей и судов. Однако поднявшийся шторм остановил начавшие движение к Крыму конвои, маломореходным судам пришлось вернуться, а эвакуацию отложить на сутки.