Во второй половине дня 5 августа прервалась телефонная и телеграфная связь с Ленинградом вследствие перехвата противником шоссе Нарва — Таллин. 8 августа немецкие части прорвались к берегу Финского залива в районе бухты Хара-Лахт. С подходом к Таллину частей 10-го стрелкового корпуса намеченные флотом оборонительные работы в основном были закончены.
Решением Ставки Верховного Главнокомандования от 17 августа оборона Таллина возлагалась на командующего Краснознаменным Балтийским флотом вице-адмирала В. Ф. Трибуца с подчинением ему всех сухопутных войск в этом районе. Командир 10-го стрелкового корпуса генерал-майор И. Ф. Николаев назначался заместителем командующего по сухопутной обороне. Это, хотя и запоздалое, решение было очень важным, так как оно определяло лицо, ответственное за всю оборону.
Рубеж по дуге от залива Палдиски-Лахти до бухты Хара-Лахт был занят войсками 10-го стрелкового корпуса совместно с морской пехотой и другими частями, сформированными флотом. Общая численность войск, оборонявших Таллин, не превышала 20 тысяч человек. Сюда вошли и сформированные в период с 15 по 20 августа из личного состава флота 14 стрелковых частей и подразделений, в том числе сводный полк, особый отряд моряков, танковая рота (13 Т-26) и ряд других формирований. Эти войска должны были противостоять пяти немецким пехотным дивизиям 42-го армейского корпуса вермахта, усиленным артиллерией, танками и поддерживаемым авиацией.
Под Таллином противник пытался пробиться к городу с востока, вдоль морского побережья. Однако артиллерийский огонь кораблей, в частности канонерских лодок «Москва» и «Аргунь» (командир дивизиона капитан 2-го ранга Н. В. Антонов), сорвал замысел врага.
При обороне Таллина впервые с начала войны было достигнуто практическое взаимодействие сухопутных войск и артиллерии кораблей флота. В результате стойкой сухопутной обороны при поддержке огня корабельной артиллерии темп продвижения немецких частей к городу во второй половине августа резко снизился.
После некоторого затишья 19 августа противник начал артиллерийскую подготовку на восточном участке обороны, а утром 20 августа немецкие войска на всем фронте перешли в наступление. Главный удар наносился силами двух пехотных дивизий вдоль Нарвского шоссе в направлении населенных пунктов Кусалу-Кодасо. К этому времени общий фронт обороны базы флота имел протяжение до 180 км. Артиллерийская плотность обороны на основных направлениях составляла всего 2–3 орудия на один километр фронта. Боевыми порядками были заняты только наиболее важные направления и участки. Неприкрытые промежутки между ротами и батальонами доходили до 5–8 км. Полки оборонялись на фронте 25–30 км. Так, например, фронт обороны 156-го стрелкового полка достигал 28 км. В резерве у командиров соединений оставалось не более стрелковой роты, поэтому оказывать сколько-нибудь серьезное влияние на ход боя они не могли.
На всех участках обороны солдаты, матросы и рабочие боролись до конца. Особенно стойко удерживали рубежи обороны латышский полк, прошедший с боями от Риги, моряки отряда полковника Костикова и некоторые эстонские части. Но превосходство немецких войск в живой силе и боевой технике, особенно в артиллерии и авиации, дало им возможность к исходу дня вклиниться в оборону на восточном и юго-восточном участках.
Силы защитников Таллина таяли. Стал ощущаться недостаток в оружии, боеприпасах и резервах. Предпринятые 21 августа армейскими и флотскими частями контратаки успеха не имели, и защитники базы снова были потеснены противником. Левофланговые подразделения 22-й мотострелковой дивизии НКВД, поддерживаемые усиленным огнем 12-дюймовой батареи острова Аэгна и канонерских лодок «Москва» и «Аргунь», к вечеру закрепились в районе бухты Колга-Лахт. Моряки отряда полковника Костикова за этот день отбили 5 атак противника, но к вечеру также были потеснены. Немецкие части медленно продвигались вперед и 22 августа достигли рубежа, расположенного в 12 км от Таллина. К полудню 23 августа бои уже шли на рубеже реки Пирита. Отряд Костикова оборонялся в 16 км от населенного пункта Палдиски. Когда противнику удалось полностью окружить отряд, тяжелораненый командир повел бойцов на прорыв. Все, в том числе и полковник Костиков, пали смертью храбрых, но не отступили. Чем ближе подходили немцы к Таллину, тем ожесточеннее сражались его защитники. Стойко и мужественно дрались бойцы 1-й бригады морской пехоты, которой командовал полковник Парафило. По несколько раз в день они переходили в контратаки, уничтожая в рукопашном бою наседавших немецких солдат. Значительный урон противнику наносили зенитчики огнем прямой наводки. Командир зенитно-пулеметной роты младший лейтенант Казбан, скрытно заняв огневые позиции, отбил «психические» атаки двух батальонов немцев, которые оставили на поле боя до 500 человек убитыми и ранеными. Корабли флота и береговая оборона провели более 500 стрельб из 80 орудий. Расход боеприпасов на кораблях и батареях за сутки достигал 2000 снарядов. 24 августа на фронт ушел последний резерв обороны — милиция Таллина, отряд матросов-добровольцев с кораблей и курсантов Высшего военно-морского училища им. М. В. Фрунзе. 25 августа немецкое командование подтянуло артиллерию и тяжелые минометы. Крупные силы люфтваффе непрерывно бомбили боевые порядки, город Таллин, береговую полосу Финского залива в районе гаваней и пирсов, а также суда и корабли флота. После артиллерийской и авиационной подготовки немецкие части прорвали позиции восточного сектора обороны и стали продвигаться к окраинам города. Защитники Таллина упорно оборонялись, однако силы были слишком неравными. Оборонявшиеся войска несли большие потери. Только за 14 дней обороны из Таллина было эвакуировано 6000 раненых, но их число непрерывно увеличивалось. Вечером артиллерийский снаряд попал в крейсер «Киров», разворотив палубу и кормовые помещения. Возникший пожар был ликвидирован, и крейсер не переставал вести огонь по противнику.
Обстрел кораблей немецкой полевой артиллерией заставлял их менять места стоянок и отходить дальше в море. Мелкие суда были выведены за полуостров Пальясар. Гавань и рейд непрерывно задымлялись с катеров. В течение всего дня корабли подвергались неоднократным налетам авиации, но бомбовых попаданий в них не было.
В ночь на 26 августа немецкие части мелкими группами стали просачиваться в предместья города. Интенсивный обстрел и бомбежки Таллина вызвали большие пожары в жилых кварталах и в гаванях. Защитники города сооружали заграждения и баррикады на улицах. Утром 26 августа было получено приказание Главнокомандующего Северо-Западным направлением маршала Советского Союза К. Е. Ворошилова, которому флот был оперативно подчинен, об эвакуации главной базы флота в Кронштадт. Войска предлагалось перевезти в Ленинград, а все военное имущество, которое не могло быть вывезено, уничтожить.
Для выполнения этого приказа командованию и штабу Балтийского флота менее чем за сутки нужно было организовать отход частей с фронта и посадку нескольких десятков тысяч защитников Таллина на транспорты. Необходимо было также обеспечить переход морем почти 200 боевых кораблей и судов вдоль узкого Финского залива, оба берега которого были уже в руках противника. Истребительная авиация флота не могла быть использована, так как радиус ее действия не обеспечивал прикрытия флота на переходе кораблей морем. Кроме того, она в этот период отражала натиск немецких войск непосредственно на Ленинград.