Группа армий «Север» (командующий генерал-фельдмаршал Вильгельм фон Лееб) включала в себя 16-ю (командующий генерал-полковник Эрнст Буш) и 18-ю (командующий генерал-полковник Георг фон Кюхлер), а также 4-ю танковую группу (командующий генерал-полковник Эрих Гопнер) — всего 29 дивизии. С воздуха группу армий «Север» поддерживал 1-й воздушный флот, имевший 760 боевых самолетов. Кроме того, в первоначальном ударе по войскам Прибалтийского военного округа должна была участвовать часть сил группы армий «Центр» (3-я танковая армия и основные силы 9-й армии). В целом в этой группировке насчитывалось около 725 тыс. человек, более 13 тысяч орудий и минометов в борьбе месяц за месяцем 1941–1944.
Выполняя указания Ставки, 5 июля Военный совет фронта создал Лужскую оперативную группу под командованием генерал-лейтенанта К. П. Пядышева. В ее состав кроме стрелковых дивизий, отведенных с фронта севернее Ленинграда, вошли три дивизии народного ополчения, ленинградские училища — стрелково-пулеметное и пехотное. На юго-запад были переброшены почти все артиллерийские полки Резерва Главного Командования (РГК).
Развернулось строительство оборонительных сооружений. Хотя оборонительные работы на Лужском рубеже не были завершены, на направлениях вероятного движения немецких танков были установлены минные поля, вырыты противотанковые рвы, на лесных дорогах устроены завалы.
Обстановка на северо-западном направлении продолжала осложняться. Немецкие войска 6 июля взяли Остров, а 9 июля — Псков. Таким образом, противник к 10 июля овладел почти всей Прибалтикой и вторгся на дальние подступы к Ленинграду. Началась битва за Ленинград — самое продолжительное сражение Великой Отечественной войны.
10 июля было образовано Главное командование Северо-Западного направления (Главком маршал К. Е. Ворошилов), которому были подчинены войска Северного и Северо-Западного фронтов, Балтийского и Северного флотов.
В этот день, 10 июля, немецкие и финские войска перешли в наступление на юго-западных и северных подступах к Ленинграду. Почти одновременно противник нанес удары на лужском, новгородском и старорусском направлениях, в Эстонии, на петрозаводском и олонецком направлениях.
41-й моторизованный корпус силами двух танковых, одной моторизованной и одной пехотной дивизий наступал по шоссе Псков-Луга и через два дня вышел к реке Плюссе, где натолкнулся на организованный отпор передовых частей Лужской оперативной группы. Немецкое командование изменило направление главного удара. Основные силы 41-го моторизованного корпуса были повернуты на северо-восток, на кингисеппское направление. Теперь расчеты противника строились на том, чтобы выйти в Ленинграду через Копорское плато. 14 июля передовой отряд с 20 танками форсировал реку Луга в 20–25 км юго-восточнее Кингисеппа и создал плацдарм на ее северном берегу у дер. Ивановское. На другой день противник занял плацдарм в районе Большого Собока. Здесь немецкие войска были остановлены спешно переброшенными сюда частями 2-й дивизии народного ополчения и сводным полком Кировского пехотного училища.
56-й моторизованный корпус немцев наносил удар в направлении Порхов — Новгород. 8 танковая дивизия овладела городом Сольцы и передовыми частями вышла к реке Мшага у Шимска.
14 июля 11-я армия (генерал В. И. Морозов) Северо-Западного фронта внезапно нанесла контрудар в районе города Сольцы. В четырехдневных боях немецкая 8-я танковая дивизия понесла большие потери. Немецкий 56-й механизированный корпус был отброшен на запад на 40 км.
Возрастающее сопротивление советских войск на Лужском оборонительном рубеже, контрудар в районе города Сольцы привели к тому, что немецкое командование было вынуждено приостановить нападение на Ленинград до подхода главных сил группы армий «Север».
На северном направлении советские войска при поддержке Ладожской военной флотилии в июле-августе вели оборонительные бои. 23-я армия к концу августа отошла на старую государственную границу. Войска 7-й армии к концу сентября были оттеснены к реке Свирь. Здесь фронт стабилизировался до июня 1944 года.
С 8 августа противник перешел в наступления на красногвардейском направлении, а с 10 августа — на лужско-ленинградском и новгородско-чудовском направлениях. 12 августа 16-я немецкая армия порвала оборону у Шимска и стала развивать наступление на Новгород.
В этой тяжелой обстановке защитники Ленинграда получили помощь. 34-я и 11-я армии Северо-Западного фронта нанесли контрудар в районе Старой Руссы. Они продвинулись почти на 60 км, создав угрозу выхода в тыл группы армий «Север». Немецкое командование было вынуждено приостановить наступление на лужском направлении и перебросить 39-й моторизованный корпус с Новгородского направления для отражения удара советских войск. Но все-таки, 19 августа советские войска оставили город Новгород, а 20 августа немцы взяли Чудово.
21 августа начались оборонительные бои на ближних подступах к Ленинграду. 23 августа Северный фронт был разделен на два фронт Карельский (командующий генерал-лейтенант В. А. Фролов) и Ленинградский. Командующим фронта остался генерал М. М. Попов.
25 августа части 1-го и 28-го армейских корпусов и 39-го моторизованного корпуса противника прорвали оборону 48-й армии в райе не Чудово и стали стремительно развивать наступление в направления Ленинграда. 28 августа немецкие войска овладели Тосно, 29-го Кириши, вплотную подошли к Колпино.
В руководстве советскими войсками в это время произошли новые изменения. 29 августа было упразднено Главнокомандование Северо-Западного направления, а маршал Ворошилов с 5 сентября вступил в командование Ленинградским фронтом.
Немецкие войска приближались к Ленинграду. Захватив станцию Мга, противник перерезал последнюю железную дорогу, связывающую Ленинград со страной. Пал Шлиссельбург (Петрокрепость). У Ладожского озера немецкие войска 8 сентября сомкнули кольцо блокады вокруг Ленинграда.
Через два дня после этого в командование Ленинградским фронтом вступил генерал армии Г. К. Жуков. В сложившейся критической ситуации он принимает меры для мобилизации сил на отпор соединениям группы армий «Север», рвущимся к Ленинграду. На наиболее угрожающие участки фронта перебрасывается часть войск с Карельского перешейка. Резервные части пополняются отрядами народного ополчения. Значительное количество моряков переводится с кораблей на сушу. Для борьбы с танками противника привлекается часть зенитных орудий противовоздушной обороны города.
В сентябре жестокие бои продолжались в непосредственной близости к городу. Ценой больших потерь немцы взяли Красное Село, Пушкин, Лигово, Новый Петергоф.
Бои шли у поселков Володарский и Урицк, на Пулковских высотах. Немецкое командование бросило в Наступление все свои силы, но они не сумели больше продвинуться ни на шаг. Немецкие части повсюду встречали отпор, преодолеть который они так и не сумели.
25 сентября командующий группой армий «Север» генерал-фельдмаршал Лееб докладывал штабу Верховного главнокомандования, что он не может продолжить наступление имеющимися силами. Так впервые второй мировой войне крупнейшая группировка немецких войск бы остановлена. Группа армий «Север» была вынуждена перейти к обороне. Это было первое крупное поражение вермахта, провал стратегии «молниеносной войны».
В боях на дальних и ближних подступах к Ленинграду советские войска потеряли почти 345 тысяч человек, из них 214 тысяч составляли безвозвратные потери. Ценой этих потерь Ленинград закрыл путь вермахту на северо-западном участке советско-германского фронта.
Немецкие войска стремились задушить защитников Ленинграда в тисках блокады, разрушая город ударами авиации и огнем тяжелой артиллерии. За период битвы по городу было выпущено около 150 тысяч снарядов и сброшено свыше 100 тысяч зажигательных и около 5 тысяч фугасных бомб. В городе погибло от снарядов и бомб 16 467 и были ранены 33 782 человека. Более миллиона человека погибло от голода. Советское командование с самого начала немецкой блокады предпринимало попытки деблокировать город. Войска Ленинградского и Волховского фронтов вели ожесточенные бои в январе-апреле 1942 года на любанском и августе-октябре — на синявинском направлениях с целью прорыва блокады, но успеха не добились.