Нассау-Зиген до последнего момента медлил с отдачей приказа об атаке со стороны Королевского прохода, ожидая, пока в бой втянутся все шведские силы. Но когда приказ был отдан и вперед пошли галеры под командованием графа Юлия Литта, выяснилось, что пролив заперт затопленными судами. Галеры рассыпались по другим протокам, но там нельзя было пройти из-за мелководья. И тогда командир отряда отдал приказ разбирать завал. Стоя по пояс в воде, под пулями и картечью противника, солдаты пробивали проход галерам. К семи часам вечера в тыл шведской эскадре, завершавшей расправу над «южным» отрядом русских кораблей, ударили галеры Литты. Эта атака оказалась столь неожиданной, что противник обратился в бегство. Среди прочих трофеев, русские захватили адмиральскую туруму «Бьёрн Ернсида». На этом судне в бою один за другим погибли четыре командира, сменявшие друг друга. Но адмирала Эренсвэрда среди пленных не оказалось. Чтобы было легче руководить сражением, он перебрался с турумы в шлюп и разъезжал на нем по рейду. В густом пороховом дыму, окутавшем водное пространство, отдавать команды сигналами было невозможно. На заключительном этапе боя шлюп Эренсвэрда был отрезан от остатков шведской эскадры, и он отдал приказ грести к берегу. Король ожидал исхода сражения в расположенной неподалеку усадьбе Кюммене. Когда адмирал вошел в помещение, его лицо было черным от порохового дыма. «Я здесь, и я разбит», — сообщил Эренсвэрд. От Финской эскадры осталась едва половина. При отступлении шведы были вынуждены бросить и поджечь более тридцати транспортных судов. Двадцать сдались в бою. Русские потери составили лишь две галеры.
Король не стал жестоко наказывать адмирала, покинувшего свой флот, но его военная карьера на этом закончилась. Эренсвэрд попросил об отставке, которая была принята.
Разгром шхерного флота сделал бессмысленным дальнейшее наступление на суше, и шведская армия отошла на прежние позиции.
В распоряжение русских попали почти все образцы шхерных судов, созданных Чапманом. На верфях в Петербурге и Кронштадте стали строить их копии — от пушечных шлюпок до шхерных фрегатов.
В последний и решающий год войны русский флот вступил обновленным не только количественно, но и качественно. Швеция также готовилась к последней схватке в шхерах. Чертежи Чапмана были разосланы на десятки верфей в Швеции и Финляндии, где с лихорадочной быстротой стали спускать на воду новые боевые корабли. На этот раз ставка была сделана на «морские танкетки» — пушечные шлюпы и ялики. К весне 1790 года шведский шхерный флот составлял невиданную силу — более 350 судов с тремя тысячами пушек. В Карлскруне ждал сигнала к отплытию корабельный флот из 21 линейного корабля и восьми больших фрегатов. В третий год войны Швеция вошла лучше вооруженной и подготовленной, чем прежде.
Король, однако, уже куда реалистичнее смотрел на расстановку сил и больше не стремился к захвату Петербурга. Но Екатерина должна была думать, что острие шведской шпаги по-прежнему направлено в сердце русской столицы. Только так императрицу можно было склонить к выгодному для Швеции миру. Для воплощения своего политического замысла Густав хотел во что бы то ни стало перенести боевые действия как можно ближе к российской столице.
Почти одновременно в середине мая 1790 года шведский корабельный и шхерный флоты нанесли удары по противнику. Атака на стоявшую на якоре в Ревеле русскую эскадру оказалась неудачной. Русские корабли и береговые батареи, как на учениях, расстреливали идущие с моря корабли. В результате шведы отступили, потеряв два линейных корабля. Последующая схватка с Кронштадтской эскадрой в глубине Финского залива также оказалась безрезультатной, и командующий флотом герцог Карл привел свои корабли в Выборгский залив. Там уже собрался весь шведский шхерный флот, которому в очередной раз не удалось захватить Фредриксхамн. Оба флота — армейский и корабельный — оказались далеко за линий сухопутных войск, с риском попасть в блокаду. Но для Густава III было важнее оказать психологическое давление на Екатерину, чем позаботиться о необходимой подстраховке флота. Политический эффект был достигнут: в Петербурге снова поднялась тревога, но тут же последовала расплата за пренебрежение военной стороной вопроса. Российский корабельный флот блокировал выходы из Выборгского залива с моря, а шхерные фарватеры перекрыл гребной флот. В стратегических точках были установлены береговые батареи. Грандиозная мышеловка захлопнулась. Оставалось лишь ждать, когда у шведов кончатся еда и питьевая вода, и самонадеянный шведский король сдастся на милость победителя. Для Густава уже была приготовлена каюта на одном из русских кораблей.