У шведов в Выборгском заливе находились 22 корабля, 10 фрегатов и около 200 шхерных судов с 14-тысячным десантом. Флот был деморализован неудачными боями и, скученный на небольшом пространстве, с часу на час ждал своей гибели. Но бездействие Чичагова дало шведам время оправиться и, чтобы отвлечь внимание противника, король Густав III, находившийся лично на шхерной флотилии, с 1 по 6 июня предпринял атаку (впрочем, неудавшуюся) на русскую выборгскую шхерную эскадру и на укрепленные подходы к крепости.
Таким образом, прошел почти месяц в полном бездействии со стороны русских. Под давлением всеобщего недовольства и даже ропота Чичагов решился высказать идею общей атаки, в которой должны были принять участи главные силы, шхерная флотилия принца Нассау и выборгская эскадра вице-адмирала Козлянинова.
Только 21 июня принц Нассау, задержанный свежим противным ветром, вошел в Биоркэзунд и сразу же, вечером, бросился в атаку на шведские канонерские лодки, занимавшие позицию у острова Равица. Ожесточенный бой закончился к 3 часам 30 минутам утра. Шведы не выдержали натиска и поспешно отступили на север, очистив весь Биоркэзунд. Приближалась развязка.
Но с вечера 21 июня ветер установился от северо-восточного и затем понемногу перешел в свежий восточный. Этой перемены шведы ждали четыре недели. Рано утром 22 июня на шведском флоте все пришло в движение. Корабли подняли паруса и стали осторожно продвигаться на север, чтобы затем выйти на фарватер мимо мыса Крюйсерорт. Параллельно им, но ближе к берегу, двинулась шхерная флотилия. Начало движения шведов оказалось неудачным: их северо-фланговый корабль «Финляндия» минут через 10 после подъема якоря навалился на мель и плотно в ней засел.
С отдачей парусов шведским флотом Чичагов поднял общий сигнал: «стать на шпринг и приготовиться к бою».
Чичагов, видимо, ожидал атаки шведов на свои главные силы и приготовился принять бой на якоре.
В 7 часов 30 минут утра голова шведской колонны подошла к отряду Повалишина. Головной 74-пушечный корабль «Дризигхетен» (капитан Пукэ), не смотря на сильный огонь, вошел в интервал между средними кораблями Повалишина и почти в упор дал по залпу в них. За ним шли остальные шведские корабли. Ближе к берегу проходили шхерные суда. Все они активно обстреливали суда отрядов Повалишина и Ханыкова, так что оба отряда совершенно скрылись в огне и дыме.
А русские главные силы все это время оставались на якоре. Чичагов медлил. Только в 9-м часу он дал сигнал северному крылу «сняться с якоря и идти на помощь к поврежденным кораблям». Около 9 часов было приказано сигналом отряду Лежнева сниматься с якоря, и только в 9 часов 30 минут сам Чичагов с главными силами вступил под паруса. В это время голова шведской колонны уже вышла на чистую воду, а сильно поврежденные корабли Повалишина и Ханыкова представляли собой безжизненные коробки, с их палуб по шпигатам текла кровь.
Но в клубах дыма, окутавшего северную часть Выборгского залива, три шведских корабля «Едвига-Элизабета-Шарлотта», «Эмхейтен» и «Луиза-Уярика», два фрегата и шесть мелких судов, отставшие от передних судов, сбились с курса и в 10-м часу выскочили на банки Репие и Пассалода. Наконец, концевой корабль шведской колонны «Энигхетен» по собственной неосторожности сцепился с брандером, который предназначался для отряда Повалишина. Пламя быстро охватило корабль. На нем поднялась суматоха, он навалился на большой фрегат «Земфира». Огонь перешел и на фрегат, скоро оба судна взлетели на воздух.
К 11 часам дня весь шведский флот вышел в море. В кильватер ему, но далеко позади, шел адмирал Чичагов. Параллельно русскому флоту, ближе к берегу, на расстоянии всего двух пушечных выстрелов, потянулась длинной лентой шведская шхерная флотилия. Однако русские корабли, увлеченные погоней за корабельной эскадрой, не обращали на нее внимания. Наконец, далеко позади, в режиме «усиленной гребли», шли эскадры принца Нассау и Козлянинова. Вечером, уже за Гогландом, их лучшие ходоки атаковали и заставили спустить флаг концевой шведский корабль «София-Магдалена», сильно поврежденный еще в Стирсуденских боях и отставший от своего флота.
На другой день под самым Свеаборгом фрегат «Венус» (капитан Кроун) вместе с кораблем «Изяслав», отрезал и захватил шведский корабль «Ретвизан». Из шведской шхерной флотилии русским удалось захватить около 20 судов. Если бы адмирал Чичагов отделил для преследования шхерной флотилии хотя бы несколько кораблей, то вся она была бы в его руках. Ослепленные огнем и дымом, оглушенные пальбой и взрывами, команды шведских галер и канонерских лодок готовы были сдаться по первому выстрелу. Немногие русские фрегаты, которым посчастливилось попасть в середину шведской флотилии, оказались отягощенными пленными и не знали, что с ними делать. Эскадры же принца Нассау и Козлянинова были слишком далеко позади и опоздали принять участие в сражении.
Таким образом, Выборгский прорыв, хотя и стоил шведам очень дорого, все же явился для русских стратегическим поражением. Чичагов упустил случай одним ударом окончить войну.
В Выборгском сражении русские захватили шведские корабли «Омгетен» (64пушки), «Финляндия» (60 пушек), «София-Магдалена» и «Ретвизан»; фрегаты «Упланд» и «Ярославец» (бывший русский); большие галеры «Эткеблас», «Пальм-Шерна», «Нордстен-Норден», «Остерн-Гогланд» и «Далларна», а также 57 малых боевых и транспортных судов. В плену оказались 4588 шведов.
В бою погибли шведские корабли «Едвига-Элизабета Шарлотта» (64 пушки), «Ловиза-Ульрика» (74 пушки), «Эмхейтен» (64 пушки), сгорел фрегат «Земфира». На одной из галер был даже найден завтрак короля Густава III, состоявший из копченого гуся и двух штофов водки. Сам Король едва ушел на малом гребном боте. Русские потеряли 147 человек убитыми и 164 ранеными.
Принц Нассау-Зиген после безуспешного преследования шведских судов, имевших лучший ход, сосредоточил свои силы у Фридрихсгама, поблизости от которого на большом Роченсальмском рейде находился гребной флот шведов.
Шведские суда расположены были в крепкой позиции южнее большого рейда. Между большими судами стояли галеры и канонерские лодки, на флангах за островами – бомбардирские суда, а на островах построены батареи. По обоим флангам тянулись длинные линии канонерских лодок и иол. Северный проход, так же как и в прошлом году, был завален, транспорты, охраняемые двадцатью судами, стояли на малом рейде. Общее число шведских военных судов, не считая транспортов, доходило до 300. У русских было чуть больше 150.
Жаждавший победы, отважный и нетерпеливый принц Нассау 28 июня двинулся к неприятелю, несмотря на неблагоприятный для его судов сильно свежеющий ветер. Сражение началось в десятом часу утра. На левом фланге русских, или в авангарде, находился Слизов с канонерскими лодками, каиками и батареями, поставленными на шпрингах в небольшом удалении от неприятеля. Галеры и другие гребные суда держались на веслах. В разгар боя, когда наши парусные суда стали подходить в первую линию, в интервалы между судами гребного флота, несколько канонерских лодок oтряда Слизова из-за сильного утомления гребцов были брошены на линию галер, которые смешались в беспорядке с парусными судами. Шведские канонерские лодки воспользовались этим и, приблизясь к столпившимся судам, открыли по ним сильный огонь, нанесший им большие повреждения.
Однако интенсивный огонь русских плавучих батарей исправил положение – суда стали занимать свои места, и сражение с новой силой разгорелось по всей линии. Но засвежевший ветер и увеличившееся волнение препятствовали правильному движению наших судов, качка мешала верному прицелу орудий, а выбившиеся из сил гребцы падали от изнеможения. Шведы из-за островов обстреливали русские суда, нанося им большие повреждения. После пятичасового упорного боя, когда часть неприятельских гребных судов отправилась в обход нашей флотилии, русские канонерские лодки начали поспешно отступать к югу и выходить из-под выстрелов. Некоторые их наших галер, получив подводные пробоины, стали тонуть, а сильный ветер срывал суда с якорей и бросал на прибрежные камни. В восьмом часу вечера Нассау-Зиген, прекращая бой, приказал сжечь те парусные суда, которые нельзя было спасти.