Но для реализации всех этих проектов требовалось главное – взятие Петрограда. Несколько дней продолжались упорные бои за удержание Пулковских высот. Белые полки ожесточенно рвались вперед, сходились в штыки с подошедшими красными подкреплениями, частями красных курсантов, латышских стрелков и моряков с кораблей Балтийского флота. Красные линкоры, поддерживавшие огнем обороняющихся, вскоре прекратили стрельбу: невозможно было различить своих и чужих. И становилось очевидным – темп наступления потерян, силы на исходе, шансы на победу уменьшаются с каждым днем, с каждым часом непрерывной, тяжелой борьбы. Большевики смогли сосредоточить против Северо-Западной Армии до 50 000 свежих войск, переброшенных с других участков фронта. Предреввоенсовета Л. Д. Троцкий взял оборону Петрограда под личный контроль. Под Ижорой отбивал атаки тяжелый бронепоезд «Ленин», прекрасно оснащенный, закованный в прочную стальную броню, вооруженный дальнобойной артиллерией. Его поддерживали бронепоезда «Троцкий» и «Черномор». Белые же бронепоезда так и не смогли подойти к фронту, остановившись у взорванного моста под Ямбургом. Английские и французские танки хорошо помогали при наступлении, но часто выходили из строя. Фактически единственным «бронесредством» Северо-Западной Армии были многократно чиненные, но героически державшиеся на линии огня бронеавтомобили «Россия» и «Гроза» (последний был отбит у красных весной 1919 года).
Получив свежие подкрепления, Красная Армия подготовилась к контрудару. План Троцкого, возглавившего оборону города, сводился к созданию «мешка», во многом сходного с тем, который пыталось руководство красного Южного фронта создать для Добровольческой Армии под Орлом. Планировалось нанести два удара по сходящимся направлениям: со стороны Петрограда – Тосно и Луги. Ударные группировки красных, соединившись в Ямбурге, должны были полностью окружить Северо-Западную Армию.
21–23 октября под Пулковом продолжались беспрерывные бои. Решалась судьба Петрограда. Неожиданный прорыв красными позиций Вятского полка заставил белых немного сдать назад. В этой ситуации нужен был еще один, быть может, последний рывок. Юденич почти полностью обнажил фланги, были сняты части 4-й дивизии от Луги и подтянуты резервы от Ямбурга. Собрав все силы в ударную группу под началом молодого командира Талабцев полковника Пермикина, командование Армии попыталось восстановить утраченное положение. 27–30 октября бои возобновились с новой силой. Пермикин и Родзянко лично водили в атаки поредевшие батальоны. Поддержал их и русско-английский танковый отряд полковника Карсона. 25 октября части 5-й (Ливенской) дивизии контратаковали красных матросов под Русским Копорским. Фланговый контрудар от Гатчины на Ропшу удался, и Пермикин телеграфировал, что «дорога на Петроград открыта». Но достигнутый успех, увы, уже не мог переломить ход всей операции. Армия выдыхалась, ее дух падал.
В этот момент красные подкрепления ударили по обнажившемуся правому флангу Северо-Западной Армии. 1 ноября большевики вышли к Луге. Ее комендант, полковник Григорьев, имея в распоряжении лишь тыловые команды запасных, не мог остановить натиск красных полков, и Луга была сдана. Железная дорога Псков – Петроград снова оказалась под контролем большевиков.
Наступление завершилось. Черными безлунными ночами белые полки отходили с прежних позиций. Фронт быстро сокращался. От Пскова на Гдов и Нарву наступали части советской 15-й армии. Уже были оставлены Красное Село, Павловск, Ропша, Детское Село. 3 ноября без боя сдали Гатчину. 11-я советская дивизия вышла в тыл Северо-Западной Армии и по шоссе двигалась на Ямбург. И только в этот момент эстонская армия, наконец, напомнила о себе. 1-я эстонская дивизия нанесла внезапный удар в тыл наступавшим от Петергофа красным и заставила их быстро отойти на исходные позиции. С моря по красным открыл огонь английский монитор. Но эта «помощь», конечно, уже ничего не решила.
В трехнедельных непрерывных боях погибла почти половина и без того небольшой Северо-Западной Армии. В ее рядах теперь оставалось не более 8 000 штыков. 7 ноября красные, наступая от Гатчины, заняли станцию Волосово, а 8-го пал Гдов. Остатки войск Юденича отходили к Ямбургу. Здесь произошли последние бои, однако город удержать не удалось, и 14 ноября Ямбург, последний крупный центр, находившийся под контролем белых, был оставлен. Вся Северо-Западная Армия оказалась прижатой к реке Нарове и к эстонской пограничной полосе у города Нарвы.