Летом 1704 г. восьмитысячный отряд шведских войск под командованием Майделя подошел к Петербургу. Во главе петербургского гарнизона, состоявшего из 6 полков пехоты и регулярной конницы, стоял Я. В. Брюс. Русские в одну ночь возвели укрепления на берегу Невы, на Аптекарском острове против Каменного острова, а поперек Невки поставили фрегат. 12 июля шведы вступили на Каменный остров, но не выдержали артиллерийского огня русских укреплений и кораблей и отступили к реке Сестре.
И все же положение оставалось угрожающим. 9 июля шведская эскадра адмирала Пру подошла к Котлину. 12 июля шведы предприняли десантную операцию. Однако упорная оборона русских сорвала попытку захватить его. Тогда шведский флот, насчитывавший 40 кораблей, сосредоточил огонь по Кроншлоту. Правда, опасаясь русских пушек, шведы обстреливали крепость с дальнего расстояния. Огонь шведской артиллерии был малодейственным. Целых два дня шведская корабельная артиллерия обстреливала Кроншлот. Однако «ситадель» стояла нерушимо, и, судя по донесениям Петру, «ни единая бомба в Кроншлот не попала». Шведский флот ушел.
В августе Майдель возобновил попытки овладеть Петербургом. Он дошел до Ниеншанца и намеревался переправиться через реку Охту. На штурм Петропавловской крепости Майдель не решился. Он пытался убедить Я. В. Брюса сдать город, но, получив язвительный ответ, увел свой отряд к Кексгольму (современный Приозерск). И все же даже после этой неудачи Майдель не отказывался от попыток овладеть Петербургом и Котлином.
В январе 1705 г. отряд Майделя численностью в тысячу человек направился с финляндского берега по льду к Котлину. В пути шведы сбились с дороги, были обнаружены русскими, которые успели приготовиться к отпору и нанесли врагу поражение.
Подошла весна 1705 г. Русский Балтийский флот, насчитывавший свыше 40 кораблей, в том числе мелких, сосредоточился на фарватере между Котлином и Кроншлотом. На мысе острова Котлин, напротив Кроншлота, обосновалась русская пехота с двумя пушками. Командовал ею Ф. С. Толбухин. Как выяснилось впоследствии, шведы задумали нанести двойной удар по Петербургу: с моря на Петербург шел флот адмирала Анкерштерна, насчитывавший 22 корабля, а с суши двигался 10-тысячный отряд генерала Майделя. Оба шведских командующих на этот раз были уверены в успехе настолько, что уже условились о встрече в Петербурге.
4 июня шведский флот подошел к Кроншлоту и Котлину, чтобы прорваться в Неву. Русские корабли встали между Кроншлотом и Котлином, перерезав фарватер и закрывая путь флоту противника. Встреченные убийственным огнем пушек Кроншлота, шведы отошли, а на следующий день предприняли десантную операцию. Русские солдаты по приказу Толбухина укрылись за камнями, в кустах, за деревьями и, подпустив шведов на близкую дистанцию, открыли огонь из ружей и стали осыпать шведов картечью из двух пушек. Понеся большие потери, шведы погрузились в шлюпки и отплыли к своим кораблям. 6 июня шведский флот подверг Кроншлот усиленному обстрелу, но и на этот раз противник не добился успеха.
Вскоре адмирал К. Крюйс получил подкрепление из Петербурга. Это дало возможность русским 10 июня не только отогнать шведский флот, открывший огонь по русским кораблям, но и напасть на шведские суда. Шведский флот еще несколько раз появлялся у Котлина и Кроншлота, но на сколько-нибудь активные действия не решался.
Войска генерала Майделя начали боевые действия почти одновременно с флотом. 19 июня шведы подошли к Неве. Русские возвели укрепления по берегу Малой Невки. Один отряд расположился на левом берегу Невы против Ниеншанца. 23 июня шведы форсировали Большую Невку и дошли до Каменного острова. Но к утру они были выбиты с острова русскими. Боевые действия русских войск против шведов генерала Майделя развернулись у Ниеншанца и Шлиссельбурга. Шведы переправились через Неву у Шлиссельбурга и готовились устремиться на юг, в глубь России, отрезав Петербург от страны. Это была серьезная угроза. Однако Майдель в нескольких сражениях потерпел поражение, вынужден был форсировать Неву в северном направлении и отступить к Выборгу.
В июле 1705 г. шведский флот Анкерштерна предпринял еще одну попытку овладеть Котлином и прорваться к Петербургу. В боях 14 и 15 июля шведы потерпели поражение. Новая десантная операция на Котлин обошлась им в 600 человек убитыми, утонувшими и плененными. До осени 1705 г. паруса шведских судов виднелись у Котлина, но Анкерштерн не решался возобновить боевые действия.
Шведы долго не могли примириться с утратой земель по течению Невы и взморья у ее дельты. Почти непрерывные и активные действия шведов в районе Петербурга свидетельствовали о том, что угроза Карла XII отобрать у России новый город отражала его действительные намерения. Но Петербург отвечал на каждый удар ударом такой силы, что отбрасывал неприятеля далеко от крепости на Заячьем острове и от деревянных стен Кроншлота.
Последний раз шведы угрожали Петербургу незадолго до исторической Полтавской баталии. В августе 1708 г. шведские войска под командованием генерала Либекера, сменившего Майделя, направились из Выборга в поход на Петербург. 22 августа шведы перешли реку Сестру и 27 августа достигли Колтушей, а оттуда повернули к Неве. Они дошли до места впадения в нее реки Тосны и начали переправу через Неву. Русские войска под командованием Ф. М. Апраксина, значительно уступавшие шведам в численности, вынуждены были отходить и «за малолюдством» не вступать в решающие бои. Между тем шведы двинулись к Дудергофу. Но вскоре острая нужда в продовольствии и массовое дезертирство вынудили Либекера отказаться от агрессивных планов в отношении Петербурга и отойти к побережью, где у впадения Луги в Финский залив стоял флот Анкерштерна.
Либекер просил адмирала посадить его солдат на суда. Анкерштерн согласился, но потребовал оставить на берегу обоз и лошадей. Шведы вынуждены были перебить 5 тыс. лошадей, оставить обоз и начать погрузку на суда. Но русские не дали им завершить эту операцию. Они разгромили 5 шведских батальонов, остававшихся на суше. Корабли Анкерштерна подняли паруса и направились к Бьерке (Койвисто). Так бесславно закончился последний поход шведов на Петербург.
Вести боевые действия против Петербурга шведы уже не могли, они были способны лишь на диверсии. Например, зимой 1711 г. небольшой шведский отряд совершил ночную диверсию на Гончарный двор в Петербурге, расположенный у «Большой першпективы». Но это был налет — и не больше.
Русские корабли, созданные на многочисленных верфях, покачивались на волнах у Кроншлота, оберегая Петербург с моря.
9 августа 1704 г. после ожесточенного штурма была взята Нарва. Разъяренные упорным сопротивлением шведов, русские солдаты никому не давали пощады. Петр обрушил свой гнев на командующего шведским гарнизоном генерала Горна, по вине которого (Горн отверг предложение о сдаче Нарвы) пролилось много крови. Бессмысленное упрямство Горна обошлось дорого и русским, и шведам. Петр кричал Горну: «Упрямец хищный!.. Не будет тебе чести от меня» и приказал провести его через весь город пешим в тюрьму.
Петр писал о взятии Нарвы: «Где перед четырьмя лет господь оскорбил, тут ныне веселыми победителями учинил, ибо сию преславную крепость через лестницы шпагою в три четверти часа получили!».
Не одна Петропавловская крепость была призвана служить охране устья Невы, возвращенного России ее храбрыми войсками. Воздвигались и другие оборонительные сооружения. Еще в декабре 1706 г., направляясь в Нарву, Петр приказал «по сошествии льда тотчас Кронверк делать с полезным поспешанием», с тем чтобы к лету его закончить. Зачем Петру понадобился Кронверк, расположенный у самых стен Петропавловской крепости? Дело в том, что от Березового острова крепость отделяла узкая протока. Шведы могли установить артиллерийские орудия невдалеке от протоки и вести отсюда огонь по крепости. Кронверк должен был занять эту свободную территорию.
Оборонительные сооружения и орудия Кронверка были ориентированы в том направлении, откуда можно было ожидать врага. С востока Кронверк оставался открытым, и это давало возможность защитникам крепости наносить врагу существенный урон огнем из орудий. Строительство Кронверка началось весной 1707 г. В августе того же года возвели земляные валы, покрытые дерном, и установили на них 78 орудий. Гарнизон Кронверка разместился в 80 казармах-блиндажах. Кронверк служил защитой русским судам, обычно зимовавшим в протоке между Заячьим и Березовым островами. Петропавловская крепость и Кронверк составляли как бы единое оборонительное сооружение Петербурга. Но город имел и вторую крепость — ею стало Адмиралтейство.