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