Виды флотов на успех в еще большей, чем у армии, степени зависели от быстрых инициатив. Русский корабельный флот располагался на двух базах — в Кронштадте и Ревеле, причем приблизительно две его трети были в Кронштадте и одна треть в Ревеле. Для шведского корабельного флота возможность справиться с неприятелем состояла в том, чтобы атаковать и разбить каждую из этих эскадр по отдельности, пока они не успели соединиться. Командование шведского корабельного флота испытывало общее нерасположение к операциям в Финском заливе — в этой «мышеловке» с ее узкими фарватерами и недостаточно известными мелями; идеально было бы выманить русских в Балтийское море и разбить их там. Но ведь Петербург, Кронштадт и Ревель стояли на Финском заливе; шхерный флот должен был действовать там же, а корабельный — его поддерживать. И король Густав отдал герцогу Карлу категорический приказ искать неприятеля в Финском заливе и там разбить его, прежде чем весь русский флот соберется в одном месте. На всякий случай Густав прислал флагманскому капитану герцога контр-адмиралу Нурденшёльду собственноручный приказ на свою ответственность смотреть, чтобы герцог действовал согласно королевскому приказу. Это странное предписание, поставившее в неловкое положение и герцога, и Нурденшёльда, смущало и смущает специалистов по военно-морской истории и привело к предположению, что Густав III был совершенно незнаком с военной субординацией. Подобное в высшей степени невероятно, если учесть его живой интерес к званиям и церемониям. Приказы герцогу и его флагманскому капитану получают свое естественное объяснение, если вспомнить резкие прошлогодние высказывания Густава о герцоге Карле и корабельном флоте, а также злорадное толкование Шрёдерхеймом взаимоотношений между братьями в дни Нового года — тогда Густав желал отставки Карла с поста генерал-адмирала, а Карл держался, не желая сам делать первого шага. Густав хотел заставить Карла слепо повиноваться его собственным директивам, и ему приятно было видеть этого популярного героя войны униженным. Без сомнения, Густав был прав в том, что Нурденшёльд был лучшим, нежели Карл, адмиралом, но, вероятно, не понимал, что своими приказами непосредственно Нурденшёльду затрудняет для него осуществление реального ведения войны вместо того чтобы облегчить.

В той ситуации у герцога Карла не было иного выхода, как строго следовать приказам венценосного брата. После риксдага 1789 года он лишился симпатий оппозиции, и ему не приходилось рассчитывать на милость, если будет вести войну на свой страх и риск. Итак, он повиновался, но его можно понять, если он не всегда горел энтузиазмом.

Первая акция была предпринята уже в конце марта — маленькая быстроходная эскадра была отправлена для нападения на Балтишпорт и уничтожения там малых военных судов и запасов. Эффект внезапности удался, но его результатом, скорее всего, стало то, что русские принялись форсировать вооружение своих флотов, поскольку увидели, что шведский корабельный флот готов к нападению. 13 мая герцог Карл и Нурденшёльд попытались исполнить королевское приказание уничтожить ту часть неприятельского флота, которая стояла в Ревеле. Попытка не удалась совершенно, так как разыгрался шторм, когда шведские линейные корабли пытались пройти мимо русских под огнем их артиллерии, и все было не в пользу нападавших. После этого шведский корабельный флот должен был стараться воспрепятствовать соединению обеих частей русского корабельного флота, а также защищать шведский шхерный флот, который в соответствии с приказом короля Густава должен был проследовать дальше в Финский залив.

Тем временем король Густав с шхерным флотом попытался выполнить свою часть программы — разбить разные части русского шхерного флота, прежде чем они успеют соединиться. 15 мая, когда еще во внутренних заливах финских шхер лежал лед, Густав атаковал эскадру, стоявшую на якоре перед фредриксхамнской крепостью, уничтожил 29 небольших; судов и отбил одно большее — парусный корабль «Селлан Верре», который русские захватили в прошлом году при Свенсксунде. Это был чудесный успех, но попытка принудить крепость Фредриксхамн к капитуляции провалилась из-за того, что переговоры с шведской стороны вел один из «плутишек» — подполковник Муриан, который располагал благосклонностью короля, но помимо этого не слишком многим и который не дорос до данной роли. Не беспокоясь больше о Фредриксхамне, Густав продолжил движение на восток. Его план состоял в том, чтобы зацепиться за пролив Бьёркёсунд восточнее Выборгского залива и оттуда контролировать большую дорогу на Петербург. Звеном этого плана было разбить выборгскую эскадру русского шхерного флота, стоявшую на якоре дальше всех в заливе. Согласно другому звену плана, Армфельт должен был выбить сильный русский корпус с его позиций при Савитайпале, взять Вильманстранд и, насколько это окажется возможным, соединиться под Выборгом с королем Густавом.

В своем усердии исполнить желание короля — а Густав был достаточно осторожен, чтобы не подгонять Армфельта приказами о наступлении — 4 июня Армфельт силами слишком маленького отряда совершил отважную атаку на Савитайпале, потерпел полное поражение, сам был серьезно ранен и был без сознания вынесен своим адъютантом с поля сражения. Тем самым движущая сила наступления армии была выведена из игры.

Однако все зависело от флотов. Корабельный флот, пытаясь выполнить задачу уничтожения русского главного флота, близко подошел к Кронштадту и на протяжении двух дней — 3 и 4 июня — жестоко бился при мысе Стюрсудцен. Победа не досталась никому, а это означало для шведов стратегическую неудачу. Теперь уже не было возможности одновременно воспрепятствовать превосходящему русскому флоту собраться вместе в единое целое и от него же прикрывать шведский шхерный флот в Выборгском заливе. Герцог Карл выполнил пожелание короля Густава, поставив корабельный флот в устье Выборгского залива — поначалу в надежде на то, что удастся избежать блокады русскими обоих шведских флотов. Но Густав упрямо стремился наступать, и в результате ни шхерный, ни корабельный флот не успели вовремя выйти из Выборгского залива. В первые дни июня шхерный флот получил существенное подкрепление: бохюсленскую эскадру под командованием подполковника Тёрнинга, а также парусное судно и несколько канонерских лодок из Стокгольма под командой подполковника Виктора фон Стединка, младшего брата командира Саволакской бригады. С большими силами, которыми он располагал, Густав попытался занять позицию в проливе Бьёркёсунд, чтобы напасть на Петербург и уничтожить выборгскую эскадру русского шхерного флота. Обе затеи не принесли успеха. Выборгскую эскадру защищали поставленные на суше батареи, и атака тесно идущими судами, предпринятая 17 июня, была остановлена не без помощи шторма, после чего десант был разбит превосходящими силами обороны. Армейскому корпусу, который должен был держать дорогу на Петербург у Бьёркёсунда, пришлось оставить позиции под усилившимся давлением русских с суши и с моря. С 20 июня превосходящие русские цоенно-морские силы надежно заперли устье Выборгского залива для шведских флотов. То была истинная «мышеловка», в которую король Густав залез сам.

Наступление, которое призвано было улучшить его позицию на переговорах, сделало ее, наоборот, катастрофической. Это знали в Петербурге, расположенном совсем близко от театра военных действий, но в других столицах, например, в Стокгольме, Берлине и Лондоне, об этом долго не было известно, поскольку там не получали никаких сообщений от короля Густава. В мае он проигрывал все возможности: испанское посредничество, соратничество с Фридрихом Вильгельмом Прусским, английские субсидии и новый канал, открывшийся в конце мая — начале июня, когда Игельштром, русский генерал в Вильманстранде, написал Армфельту, предложив начать от имени монархов прямые переговоры о мире. Армфельт получил инструкции Густава: быть настроенным положительно в вежливой, ничего не выражающей форме; неудача Армфельта при Савитайпале и изоляция Густава в Выборгском заливе отрезали потом все возможности для продолжения переговоров.