В течение двух дней шведы несколько раз атаковали русский флот и каждый раз встречали упорное сопротивление. В ходе сражения у Красной Горки русская эскадра вице-адмирала Александра Ивановича Круза не допустила прорыва шведского флота к Санкт-Петербургу. 23 мая (4 июня) эскадра Василия Яковлевича Чичагова, выстроившись в кильватерную линию, поспешила на помощь сражающимся кораблям Кронштадтской эскадры.

На следующий день утром шведы увидели свой дозорный фрегат, который извещал герцога Карла Зюдерманландского о том, что за ним гонится Ревельская эскадра. Не желая оказаться зажатыми между двумя русскими эскадрами, шведские корабли поспешно покинули поле боя и укрылись в Выборгской бухте.

На выходе в море у Выборга сосредоточился русский флот в составе 27 кораблей, 5 парусных и 8 гребных фрегатов. Шведский флот оказался заблокированным. Шведы ожидали попутного ветра, чтобы совершить прорыв блокады, сохранить свои корабли и, не вступая в бой с русской эскадрой, уйти и укрыться в Свеаборге.

С вечера 21 июня установился восточный ветер, которого шведы ждали целый месяц. Неприятельский флот приготовился к выходу в море. В четыре часа утра 22 июня шведские корабли начали сниматься с якоря. Адмирал Василий Яковлевич Чичагов, всё ещё уверенный, что шведы для выхода в море выберут северный фарватер, опасался передвигать свои корабли и только сигналом приказал подготовиться к бою. Между тем шведы, пользуясь свежим ветром, проходили между кораблями отрядов Иллариона Афанасьевича Повалишина и Петра Ивановича Ханыкова, беспрестанно осыпая их ядрами. Окружённые непроницаемым дымом, корабли отрядов Повалишина и Ханыкова отбивались от постоянно сменяющихся противников. Не получая помощи от флота, продолжавшего оставаться на якоре, эти два отряда вынесли на себе всю тяжесть жесточайшего боя. Все корабли имели значительные повреждения и большую потерю в людях. На бомбардирском корабле «Победитель» был сбит весь рангоут, а на «Не тронь меня» был смертельно ранен его командир – отважный капитан 1-го ранга Яков Иванович Тревенин.

Во время бегства среди густого дыма несколько шведских кораблей наскочили на мель. Были взяты в плен три линейных корабля, два фрегата, катер, две галеры и три транспортных судна.

Замыкающий неприятельскую линию корабль должен был пустить три брандера на отряды контр-адмиралов Повалишина и Ханыкова. Однако по недосмотру при вступлении под паруса, поданный с корабля на брандер канат не был обрублен. Горящий брандер, сцепившись с кораблём, зажёг его и вместе с ним свой ближайший фрегат. При взрыве этих судов два русских корабля были осыпаны горящими обломками, но спаслись от пожара. К девяти часам утра, когда передовые суда неприятеля уже прошли русские отряды, адмирал Василий Яковлевич Чичагов приказал двум кораблям из отряда вице-адмирала Мусина-Пушкина идти на помощь контр-адмиралу Повалишину. Потом Чичагов направил в погоню за неприятельскими кораблями отряд кораблей под командой вице-адмирала Александра Ивановича Круза. Затем адмирал Василий Яковлевич Чичагов двинулся сам со своими главными силами.


Прорыв шведов под Выборгом 22 июня (3 июля) 1790 года.Акварель, гуашь. Художник В. Сорокин. Из архива автора


Торопясь вступить под паруса, русские корабли рубили канаты, однако быстроте выхода мешала близость мелей, между которыми стояли некоторые из судов. К 11 часам утра весь шведский флот вышел в залив, оставив далеко за собой главные силы русского флота. Спешно снявшись с якоря, корабли русской эскадры пустились вдогонку. К вечеру «Мстислав» сумел догнать и атаковать 74-пушечный корабль «София Магдалена». После жестокого и короткого боя шведы спустили флаг и сдались в плен.