Русская гребная флотилия насчитывала 31 крупное (преимущественно парусное) судно и 121 гребное с тысячей орудий и до 14 тысяч человек команды, тогда как шведы, занимая хорошую позицию, располагали 295 судами также с тысячей орудий и 18 тысячами человек. Если король при господстве русского флота на море не мог увести свои суда в другое место, то и русской гребной флотилии оказалось сложно разбить неприятеля.
Шведы расположили суда подобно тому, как было в прошлую кампанию. Между островами Кукуари и Варисари они развернули линию крупных судов; в интервалах между ними стояли галеры и канонерские лодки с орудиями на носу. За островками на флангах расположились бомбарды, а на самих островках — батареи. Длинные линии грибных судов (иол и канонерских лодок) протянулись от Кукуари до Муссало и от мели у Варисари до острова Лехма. Северный проход был загражден. Транспортные суда под прикрытием 20 военных стояли в тылу, на малом рейде.
У нашей армии была возможность установить батареи на островах, закрыть выходы крупными кораблями и постепенно действовать. Но Нассау-Зиген решил быстро добиться успеха, одним ударом, тем более что хотел отметить неминуемой, по его мнению, победой день восшествия на престол Екатерины II.
В ночь на 28 июня установился тихий попутный ветер, но зыбь предвещала изменение погоды. Тем не менее принц отдал около 3.00 ордер на сражение. Он рассчитывал на высокий порыв офицеров, стремившихся к решительному успеху.
По ордеру, 40 канонерских лодок и каиков под командованием Слизова строились между Вийкаром и Киркумом и должны были атаковать правый фланг шведов; для поддержки за ними шли 3 бомбарды и 3 плавучие батареи, вооруженные тяжелыми орудиями. За первой линией следовал правый фланг генерал-майора Буксгевдена (37 канонерских лодок). 23 галеры (граф Литта) образовывали на походе третью линию и должны были занять положение в центре. Четвертую линию составили парусники вице-адмирала Козлянинова (7 гребных фрегатов, 8 шебек, 2 полупрама, 1 бомбарда, 8 шхун, ибо прочие отстали). Построение боевой линии с судами в шахматном порядке было завершено к 4.00. Однако к этому времени ветер и зыбь усилились.
Около 8.00 канонерские лодки левого фланга с плавучими батареями на буксире и бомбардами за ними направились в атаку на шведский правый фланг. За ними, в шахматном расположении, к центру шведской линии направились галеры. Но когда масса судов показалась севернее острова Вийкар, волнение с запада затруднило греблю. Тем не менее строй продвигался вперед. В 9.30 суда Слизова открыли огонь, через полчаса подошли и были установлены под обстрелом на шпринг плавучие батареи. Поддержавшие их галеры также вступили в бой. Около полудня зашедший с юго-запада ветер способствовал тому, что парусные суда двинулись в интервалы между передовыми гребными судами. Однако к этому времени качка и утомление повлияли на гребцов канонерок, и несколько из них, врезавшись в строй галер, вызвали замешательство. Галеры, в свою очередь, смешались и помешали парусникам. Канонерки пытались встать на якорь, но волнением их тащило и било о галеры.
Нассау-Зигену и всем начальникам пришлось спешно наводить порядок, и около четырнадцатого часа удалось продолжить атаку. Все это время три плавучие батареи продолжали вести артиллерийский огонь; у левофланговой батареи был перебит шпринг, и она отошла. Свежеющий ветер не позволял парусникам разворачиваться; в это же время был смертельно ранен командир авангарда парусников Денисон. Качка мешала прицелу. Шведы, отдохнувшие за двое суток, расположившие свои суда за островами, стреляли на выбор. В пятнадцатом часу их канонерские лодки, укрываясь островом Лехма, начали наступление в тыл русской флотилии. Кто-то из флаг-офицеров Нассау-Зигена дал команду канонерским лодкам контратаковать обходящую группу, и экипажи с удовольствием выполнили приказ, выводящий их из не предвещавшего успеха боя.
В шестнадцатом часу от повреждений начали тонуть галеры; часть их ветром выбрасывало на камни. В девятнадцатом часу гребные суда пытались спастись из-под неприятельских выстрелов. Козлянинов старался выстроить парусные суда, но ветер и волнение мешали, а шведские пушки с судов и островов крушили рангоут.
Когда в двадцатом часу Нассау-Зиген решил, что продолжать сражение бесполезно, уже не оставалось возможности для отступления, и приходилось сжигать те суда, которые не удавалось спасти. К 21.00 из шести бомбард пять были разбиты на камнях и одна взята шведами. Гребной фрегат «Николай» затонул, «Мария» — был захвачен противником. Одна плавбатарея пошла ко дну, 11 галер и 5 канонерских лодок попали на камни. Люди с них старались вплавь спастись на острова. Остальные еще пытались отстреливаться до ночи; лишь около 23.00 пальба прекратилась, но до 4.00 продолжали гибнуть суда — некоторые тонули, другие сжигали сами команды.
Русская флотилия потеряла 5 гребных фрегатов, 5 шебек, 2 полупрама, 2 плавучие батареи, 7 шхун, 6 бомбард, 16 галер, 5 канонерских лодок, 3 больших и 4 малых бомбардирских катера. Потери в людях составили 7369 человек, в том числе 269 офицеров.
В письме Безбородко Турчанинов объяснял:
«Я, по чистой совести, присяге и верной службе, доношу, что главнейшия причины дела сего суть:
1. Безпредельное рвение принца Нассау найти и разбить неприятеля. Опрометчивость его — в равном градусе с помянутым рвением. Все сие не допустило его изследовать подробно отысканного неприятеля в его силах и положении; а потом и приготовить канонерские лодки с такою благонадежностью, потому что оне только что пришли с господами Козляниновым и Слизовым.
2-я причина — составляет неповиновение и устройство тех лодок. Но как не обучив людей и не приуготовя — не можно, кажется, с такою строгостью и взыскивать с них.
3-я причина: сильный W ветер — не только навлек на камни все галеры, но и не позволял парусным кораблям выйдти из опасного места, куда оныя зашли, ибо тут уже все усилия деланные были тщетны».
Турчанинов считал, что, если бы русские продолжили атаку еще два часа, их бы ждала победа. Однако необученные экипажи гребных судов из сухопутных войск потеряли управление, ветер не позволил вывести прижатые к берегу парусники.
Атака канонерских лодок не удалась из-за неорганизованности и внезапно начавшегося ветра. Команды лодок, пришедших с Козляниновым и Слизовым, не были подготовлены к бою; они расстреляли снаряды с значительного расстояния и оказались безоружными, а сильный западный ветер загнал галеры на камни и не позволил парусникам уйти с опасного места.
Принц в донесении от 4 июля писал:
«…Парусники были окружены огнем неприятельским: они сражались с величайшим мужеством, но имели дело с неприятельскими фрегатами, и шлюпками, со всех сторон их окружившими, и не могли долго им противустоять».
Первые сведения о большом поражении Екатерина II получила в ночь на 1 июля от Турчанинова и была огорчена известиями, что флотилия разбита, а Нассау-Зиген погиб.
Принц после поражения писал Императрице:
«Не имею силы дать отчет вашему Величеству в подробностях уничтожения Вашей флотилии. Я нахожусь в отчаянии. После такого поражения я решился оставить ремесло, которое делало меня счастливым, когда я надеялся служить для пользы Вашего Величества. Но затруднения, которые я встречаю со всех сторон, заставляют меня чувствовать, что я могу быть только вреден для службы В. И. Величества. Г. вице-адмирал Козлянинов не будет иметь одинаковых со мной затруднений, и я умоляю В. И. Величество позволить мне передать ему командование».
Нассау-Зиген отослал Императрице все награды. Он просил судить его военным судом. Однако Екатерина II, обрадованная хотя бы тем, что принц остался жив, посчитала, что заслуги его перевешивают. Она писала принцу, что он уже судим в ее уме, ибо она помнит, в скольких битвах он побеждал врагов, и что нет генерала, с которым бы не случалось на войне несчастья. Считая, что нет ничего вреднее уныния, Екатерина II предписала Нассау-Зигену собрать все, что возможно, прислать подробное описание, и отмечала, что принц смог все привести в такой порядок, что за месяц запер бы шведский гребной флот и способствовал заключению мира.