Выслав разведку, 12 мая Круз вышел из Кронштадта. Встречные ветры задержали его у Красной Горки, где эскадра занималась артиллерийскими и парусными учениями. Во всеподданнейшем донесении от 17 мая вице?адмирал, сообщая о своем положении и появлении у Гогланда 40 шведских кораблей, в том числе 22 линейных, просил выслать в его распоряжение 8 новых гребных фрегатов, стоявших у Кронштадта. Уже через пять дней фрегаты присоединились к эскадре. Тем временем шведские парусники, которые охраняли передислокацию гребных судов под Выборг, вечером 20 мая обнаружили русский корабельный флот со стороны Кронштадта. Шведскому флоту предстояло, спасая армейские суда, вступить в схватку с русскими, тогда как Крузу следовало сразиться со шведами, чтобы защитить столицу империи.
К началу сражения эскадра А.И. Круза состояла из 17 линейных кораблей, 4 парусных и 8 гребных фрегатов, 2 катеров. Из 1760 пушек 1400 было на линейных кораблях. Авангардом командовал вице?адмирал Я.Ф. Сухотин, кордебаталией — сам Круз на корабле «Чесма», арьергардом — контр?адмирал И.А. Повалишин. Особый отряд составили 4 парусных и 5 гребных фрегатов под командованием Ф.И. Денисона, которому Круз предоставил право действовать самостоятельно. Фактически этот отряд составлял подвижный резерв для парирования неожиданных действий противника. Ему следовало держаться на наветренной стороне боевой линии линейных кораблей, чтобы обладать свободой маневра. 3 гребных фрегата и 2 катера Круз оставил при себе для передачи сигналов и для посылок.
Шведский флот насчитывал 22 линейных корабля, 8 больших, 4 малых фрегата и несколько вспомогательных судов; против 800 крупных (18–36?фунтовых) и 600 мелких орудий русских линейных кораблей шведы имели 1200 орудий 29–36?фунтовых и 800 более мелких. В боевую линию генерал?адмирал Карл Зюдерманландский ввел все линейные корабли и 2 больших фрегата; остальные 6 составили отдельный отряд для поддержки пострадавших в бою кораблей и наиболее атакованной части флота.
Соотношение сил не давало Крузу основания для оптимизма. Но он обязался не допустить шведов к русским берегам, и обещание эскадра Круза успешно выполнила в троекратном сражении у Красной Горки, или у острова Сескара.
В течение дня 22 мая флоты сближались. Когда же после полуночи повеял восточный ветер, вице?адмирал Круз использовал возможность для наступления. На исходе 3?го часа последовал сигнал флагмана атаковать неприятеля и сразиться с ним на дистанции ружейного выстрела; по этому сигналу авангард начал спускаться на шведский флот. Шведские суда шли в почти правильной кильватерной линии; легкая эскадра держалась с наветренной стороны на траверзе головы эскадры. До начала сражения герцог Карл, имевший указание короля беречь свою жизнь, со штабом перешел на борт малого фрегата «Улла Ферзен», чтобы управлять боем вне строя; на флагманском «Густаве III» оставался для приема и передачи сигналов флаг?офицер лейтенант Клинт. Фактически кордебаталию возглавлял командир флагманского корабля полковник Клинт.
Российские корабли шли в строю фронта, но вскоре легли на курс, почти параллельный неприятельскому. Круз стремился упорядочить растянувшуюся линию. В начале 5?го часа первым открыл огонь шведский авангард, минут через 10 ответил русский авангард, а через 25 минут, когда спустились остальные шведские корабли, перестрелка стала всеобщей. Арьергарды вступили в бой с задержкой и обменивались выстрелами на значительном расстоянии.
Шведы, оказавшись под ветром, не стремились атаковать и ограничивались обороной. Круз продолжал наступать. Авангард все более сближался с неприятелем. В 8?м часу с подходом русского арьергарда сражение приняло особенно острый характер. В это время главнокомандующий поднял сигнал кораблям «Святой Николай» и «Принц Густав» подойти ближе к его флагману, против которого сражались 3 шведских корабля, в том числе генерал?адмиральский.
В ходе сражения 2 шведских корабля и 3 фрегата пытались охватить и поставить в два огня русский авангард; один из фрегатов уже поворачивал, но Денисон, оценив обстановку и располагая наветренным положением, повел 5 парусных и гребных фрегатов, отогнавших шведов. После этого шведский флот вышел из боя. Круз пытался преследовать. В начале 9?го часа он сделал сигнал построить линию не по учреждению (то есть не по указанному перед боем порядку), а по способности, что сокращало время перестроения; но стихший около 10 часов ветер не позволил продолжить атаку.