В ночь на 4 августа шведы, обеспокоенные появлением в тылу эскадры Круза, безуспешно попытались атаковать 70 судов Нассау-Зигена. Для принца атака была совершенно неожиданна, ибо он предполагал, что шведы покинут готовившуюся им ловушку. Неприятельские корабли внезапно появились на рассвете из утреннего тумана. Только когда шведы приблизились на пушечный выстрел, правый фланг, не получая приказа, около 4.00 открыл огонь. Шведы хотели выманить русскую флотилию и вели перестрелку на предельной дальности. Нассау-Зиген, рассмотрев шведский отряд, состоявший из 20 канонерских лодок при поддержке нескольких более крупных судов, которые скрытно обошли островки Коргесари и атаковали правый фланг, решил нанести контрудар и послал графа Литта собирать легкие суда, которые были включены им в дивизии разнородных сил. Суда эти (каики, канонерские лодки) выдвинулись на фланги линии в седьмом часу. Шведы, продолжая стрельбу, начали отходить в направлении прохода Королевские ворота, преследуемые русскими. В 9.00 неприятельские канонерки начали вступать в проход, и около 11.00 стрельба прекратилась. Русские суда произвели около двух тысяч выстрелов. В перестрелке 23 шведских и 35 русских судов на большой дистанции потери и повреждения оказались невелики.
Бой послужил наукой Нассау-Зигену. Он расположил свои силы ближе к проходу, изменил их построение. Вице-адмирал считал, что при быстром сборе легких сил мог успеть отрезать пути отхода неприятеля. В тот же день он писал Турчанинову, что прекратил бой лишь из опасения, что противник спасется бегством, пока эскадра Круза не преграждает ему путь. Но эскадра эта уже прибыла в Аспенские шхеры, и 4 августа принц получил уведомление Круза. В письме вице-адмиралу от 4 августа принц выразил надежду на успех, рассчитывая, что Круз оставит Винтера командиром присланных с ним судов гребного флота, сообщал об отправке в помощь трех канонерских лодок и шести лоцманов и приложил к письму план с распределением своих кораблей.
Нассау-Зиген рассчитывал, что крупные корабли эскадры Круза отвлекут неприятельские силы к югу и позволят его гребным судам без особых трудностей форсировать Королевские ворота. Однако как Круз, так и подчиненные ему опытные моряки полагали, что первоначальный удар следовало нанести более подвижными гребными судами, ибо крупным кораблям было трудно маневрировать между островами и камнями; кроме того, они зависели от направления ветра. В частности, только 6 августа ветер позволил эскадре Круза продвинуться в шхеры, сделав промеры. Так как шведы демонстрировали готовность атаковать, 8 августа Круз собрал совет, на котором было решено не вводить эскадру далеко на Роченсальмский плес за камни, а оставить на позиции между островами Лехма и Вийкар, где неприятель не мог ее атаковать развернутым фронтом, тогда как Нассау-Зигену следовало нападать с тыла. Постановление совета повез к Нассау-Зигену П. И. Турчанинов.
Принц был возмущен. Он отправил в столицу решение совета с комментариями, а сам написал Крузу оскорбительное для того письмо, в котором были такие фразы: «Вы становитесь в ответственность пред Ея Величеством за невыполнение начертанного ею плана… В том месте, где вы предполагаете остановиться, будет все равно, что вы были бы во время сражения у острова Аспэ… Если вы решились нейдти далее, то прошу вас, по крайней мере, возвратить мне суда моей эскадры». Круз ответил также в резких выражениях и продолжил выполнение намеченного плана, который не противоречил инструкциям Императрицы. Однако обстоятельства (встречный ветер, постановка фрегата «Патрикий» на камни) позволили Крузу лишь 12 августа приготовиться к бою.
Уже с авангарда был дан сигнал, что виден неприятель. Однако в то лее время на флагман прибыл генерал-майор И. П. Балле с высочайшим указом принять командование. Екатерина II, получая одно за другим тревожные донесения своего любимца Нассау-Зигена, поверила ему и согласилась заменить вице-адмирала генерал-майором Балле, а Круза возвратить в столицу.
Вечером 12 августа Нассау уверял Балле:
«Полагая, что ваше пр-во могли атаковать сегодня неприятеля, я подвинул вперед все те суда, которые должны были действовать с его фланга. Оне останутся в ночь в их настоящей позиции на разстоянии 2/3 пушечнаго выстрела от шведов. Сегодня же ночью я подвину вперед 5 моих больших судов, так как я надеюсь, что ваше пр-во в состоянии будете открыть нападение на самом разсвете. Вы понимаете необходимость не терять ни одной минуты времени для того, чтобы сильнее атаковать и тем скорее одержать победу».
Принц лукавил, ибо его суда оставались в прежнем положении и не могли быстро прийти на помощь Балле, если бы тот перешел в наступление. Так как он старался не показывать неприятелю приготовлений со своей стороны, очевидно, вице-адмирал намеревался связать противника боем с резервной эскадрой и потом пожинать лавры победы быстрым ударом свежих сил через Королевские ворота. О том, что проход может быть загражден, он не подумал.
Тем временем адмирал Эренсверд, преградив проход Королевские ворота тремя затопленными судами и прикрыв огнем четырех бомбардирских кораблей и других судов, основные силы сосредоточил со стороны Балле — против его залпа весом 100 пудов шведы имели 140 пудов. Сверх того, их маневры на рейде не были так связаны, как движение крупных кораблей между камнями.
Сражение при Роченсальме 13 августа 1789 года началось на рассвете атакой отряда Балле (20 судов с 404 орудиями) с юга шведской флотилии (62 боевых судна, 783 орудия). Главные силы (66 судов, 879 орудий) должны были атаковать с севера, через проход Королевские ворота.
В 6.30 корабли Балле снимались с якоря, чтобы завозами, при промерах глубины, перейти в наступление. В десятом часу последовал сигнал атаковать неприятеля. Около 10.00 пакетбот «Поспешный» сделал первый выстрел бомбой по шведским канонеркам, но произошел недолет. Шведы открыли ответный безопасный огонь. Но к полудню русские суда стояли на шпринге, причем передовые подвергались сильному обстрелу, а часть из-за дыма встала слишком далеко.
Тем временем Нассау-Зиген, который мог наблюдать движение Балле, лишь в начале одиннадцатого часа отдал сигнал «идти в атаку», что означало движение в соответствии с диспозицией. Левый фланг под командованием Слизова составляли 3 бомбарды, 4 мортирных плота и 10–12 легких судов. С последних предстояло высадить 400 человек десанта и прикрывать батарею из 3 единорогов, которую следовало построить на Санданеми, а также отбуксировать плоты и поставить их восточнее мыса. Артиллерия судов и батареи должны были с фланга обстреливать шведские суда, защищавшие Королевские ворота. За ними следовали 2 катера, 7 галер и 8 канонерских лодок левого фланга, а далее — 8 галер кордебаталии гвардии секунд-майора И. И. Кошелева.
В центре плотной линией шли 5 крупных парусных судов капитана 2-го ранга Хрущова, на правом фланге — 7 галер и 6 канонерских лодок Литта должны были с фронта и фланга обстреливать те же вражеские суда, а 8 канонерских лодок майора Хвостова — отыскивать проход на малый рейд.
Флотилия по сигналу двинулась, но к полудню лишь Слизов был близко от цели. Его суда начали высадку десанта, бомбарды потопили одну из неприятельских канонерских лодок, но дым, который окутал отряд, позволил шведам незаметно стянуть силы к проходу. Галеры вступили в бой на исходе тринадцатого часа, а крупные суда без буксира практически не продвигались, и к ним Нассау-Зиген направлял каики от Слизова. Только в конце пятнадцатого часа удалось подтянуть к проходу тяжелые суда, а Литта смог обстреливать шведские бомбарды. Однако шведы уже отвели свои суда в глубь рейда, обстреливая лишь Королевские ворота.
Хвостову из-за твердого каменистого грунта не удалось пройти на рейд, его шлюпка была разбита, и спасшийся моряк отвел свои суда к отряду Литта. Под обстрелом шведских бомбард на воздух взлетела галера «Цывильск», пострадала соседняя галера «Храбрая».
Тем временем Балле вел упорный бой с превосходящим противником. К 15.00 он ввел в бой все суда. Шебека «Летучая» вышла из строя, пакетбот «Поспешный» был сильно поврежден, потерял командира, половину экипажа убитыми, судно несло ветром на неприятельскую линию, и шведы взяли потерявший боеспособность корабль. К 16.00 большинство судов подняли сигналы о том, что терпят бедствие. Были подбиты орудия, кончались боеприпасы. Лишь фрегат «Симеон» успешно вел огонь.