В 11 часов русская эскадра выстроилась в строй фронта. Обнаружив 12 шведских кораблей, русская эскадра прибавила парусов. По сигналу С.К. Грейга в 15.30 она при слабом ветре стала спускаться на противника. Каждый корабль спускался на противостоящий шведский, «Ростислав» — на шведский флагманский корабль «Густав III». С.К. Грейг действовал по канонам линейной тактики. Шведская эскадра, маневрируя, ожидала подхода русской эскадры. В 16 часов она сделала поворот «все вдруг» оверштаг на левый галс и построилась в линию баталии. Русская эскадра по сигналу флагмана также повернула на левый галс и выстроилась в линию баталии, причем 5 кораблей контр-адмирала М.П. Фондезина, шедшие раньше в авангарде, а после поворота оказавшиеся в арьергарде, отстали и нарушили строй. Несмотря на сигналы С.К. Грейга, арьергард держался далеко сзади.
Неприятельский флот, бывший под ветром от нашего и лежавший левым галсом, держался, как на маневрах, в правильной линии, сохраняя между судами равные интервалы.
Между тем спускавшийся на шведов наш флот сохранял довольно правильный строй только в авангарде и передовой части кордебаталии, за которой в беспорядке шли 8 судов, в большинстве принадлежавшие к отряду М.П. Фондезина. Далеко отставшие задние корабли, несмотря на сигналы адмирала, сопровождаемые пушечными выстрелами, не торопились приблизиться к неприятелю.
Передовым в нашей линии был корабль «Всеслав» контр-адмирала Т.Г. Козлянинова. По диспозиции ему следовало быть третьим, но по уходе в конец линии двух кораблей, не понявших сигнала, корабль Козлянинова сделался передовым. С.К. Грейг на корабле «Ростислав» отважно спускался под бомбрамселями и лиселями на корабль генерал-адмирала, держа сигнал: «арьергардии вступить в свое место». Неправильность нашей линии заставила адмирала семь своих передовых кораблей поставить под огонь двенадцати неприятельских с той целью, чтобы для каждого из следующих задних кораблей оставить по одному противнику. Около 17 часов авангард Т.Г. Козлянинова сблизился с противником до 2 кабельтовых и, не ожидая сигнала, открыл огонь в ответ на огонь шведских кораблей. Вслед за флагманом все корабли, выбрав себе цели, открыли огонь.
100-пушечный линейный корабль «Ростислав»
При тихом ветре, почти не разгоняющем дыма, неприятели ожесточенно поражали друг друга на расстоянии картечного выстрела. Огонь отставшего арьергарда не достигал цели. Обе эскадры строго держались линейной тактики.
В 18.30 шведский флагман «Густав III», а за ним и все шведские корабли стали спускаться под ветер и выходить из-под огня русских кораблей. «Ростислав» также спустился, но шведские корабли, сомкнув строй, закрыли свой флагман, вышедший из линии… русская эскадра привела к ветру и продолжала сражение.
В половине восьмого часа два передовых шведских корабля, дравшиеся с кораблем Козлянинова, а также корабль шведского генерал-адмирала и следующий за ним, находившиеся против «Ростислава» бывшие не в состоянии долее выдерживать огонь, спустились за линию на буксирах своих шлюпок. Вслед за ними и остальные корабли начали спускаться под ветер, выравниваясь по флагману и смыкая линию. Победное «ура» нашего флота приветствовало отступление неприятеля. Ветер слабел, поэтому наши корабли с помощью буксировки шлюпками сблизившись с неприятелем, возобновили несколько ослабевший огонь. В 21.00 шведская эскадра снова спустилась под ветер и привела корабли в байдевинд на правый галс. Некоторые корабли русской эскадры, преследуя шведов, также спустились и привели в байдевинд на правый галс, став к противнику левым бортом, где орудия были в полной исправности, тогда как часть орудий правого борта вышла из строя. В это время шведский вице-адмиральский корабль «Принц Густав» и «Ростислав» сблизились, между ними завязался бой.
Но спустя немного времени, при совершенно затихшем ветре, под густым покровом дыма, шведские корабли один за другим начали выходить из-под наших выстрелов. Корабль «Принц Густав» вице-адмирала Вахмейстера около 22 часов спустил флаг, сдался кораблю «Ростислав». В 22 часа с наступлением темноты сражение прекратилось. Русский корабль «Владислав», потеряв управление, перед концом сражения оказался снесенным в середину шведского боевого порядка. Не получив помощи от ближайших к нему кораблей арьергарда, «Владислав» с совершенно избитым корпусом и рангоутом, поврежденным рулем, сбитыми якорями и несколькими разорванными от усиленной пальбы пушками был захвачен шведами. С.К. Грейг получил сообщение, что «Владислав» находится в опасности, только после 23 часов и собирался идти ему на помощь. Но корабли авангарда и центра были настолько повреждены, что не могли преследовать противника, а арьергард находился далеко.
По окончании сражения, с наступлением темноты шведская эскадра оторвалась от русских и утром 7 июля ушла в Свеаборг под защиту крепости. Несмотря на одинаковое число потерянных кораблей, как будто уравнивающее боевой успех обоих противников, на самом деле полная победа была на нашей стороне.
За то, что в начале боя самовольно повернули на другой галс, оставили свои места в линии, отошли от неприятеля, не оказали помощи «Владиславу» и больше не вступали в сражение, С.К. Грейг снял командиров кораблей «Дерись», «Иоанн Богослов», «Память Евстафия» — Коковцева, Вальронта и Баранова, отдал под суд и заменил их другими офицерами.
Важнейшим результатом Гогландского сражения было уничтожение смелого до дерзости намерения Густава овладеть Петербургом. Рассчитывая, что наш флот, потерпев полное поражение, укроется в Кронштадте, а при стянутых в Финляндию сухопутных силах столица останется без достаточной военной охраны, шведский король располагал, перевезя на судах гребного флота из Биорко к ораниенбаумскому берегу тысяч 20 лучших из своих войск, овладеть с ними беззащитным со стороны берега Петербургом. Но победа С.К. Грейга изменила дело.
Гогландское сражение 6 июля 1788 г.
Получивший серьезные повреждения, шведский флот, исправлявшийся в Свеаборге и надеявшийся, что С.К. Грейг занят тем же в Кронштадте, никак не ожидал скорого появления русских и рассчитывал на полную безопасность своих крейсеров, высылаемых в море. Однако и в этом случае энергичный адмирал не оправдал расчетов неприятеля. Хотя суда нашего флота имели также значительные повреждения, например, в корпусе иных кораблей было до 120 пробоин, а корабль Т.Г. Козлянинова потерял весь рангоут. Общее число убитых и раненых доходило до 1300 человек, но С.К. Грейг не пошел в Кронштадт, а отправив туда четыре наиболее поврежденных корабля, остальные исправил у Сескара и, не теряя времени, двинулся к Свеаборгу.