Из шведских гребных судов, захваченных в Свеаборге, были сформированы два отряда (лейтенанта Мякинина и капитана Селиванова). Оба отряда шхерами прошли до Або и заняли фарватеры, ведущие к этому городу из Аландских и Ботнических шхер. Общее командование над отрядами судов принял на себя лично Буксгевден. Он приказал послать отряд Мякинина в составе двенадцати канонерских лодок и двух полов к Юнгфрузунду.

Шведская гребная эскадра Гвельмшёрны в значительно превосходящих силах (около 60 судов разных типов) появилась около полудня 18 июня в виду русских судов, расположенных южнее Або, близ острова Ганге. Двигаясь под углом в 45 градусов по отношению к русским судам, авангардный эшелон шведов открыл огонь, однако ответная стрельба русской артиллерии была настолько успешна, что шведы вынуждены были отступить. Атака повторилась, но столь же неудачно, а к русским тем временем подоспели еще три судна, вернувшиеся из разведки. У шведов были разбиты четыре судна, одно из которых приткнулось на мель около острова Ганге. Дувший навстречу противнику сильный ветер содействовал русским в этом бою.

К вечеру под прикрытием подошедшего подкрепления из пятнадцати судов шведы отошли под защиту острова Крамне. Новая стоянка гребной флотилии была избрана в 8 верстах впереди Або, между островами Рунсало и Хирвисало. 20 июня гребной шведский флот (58 судов) подошел на дистанцию три версты к русской флотилии, но почему-то промедлил и не предпринял никаких действий до 22 июня.

В этот день в 6 часов вечера к русскому авангарду приблизились шесть шведских канонерских лодок. Завязалась перестрелка, под прикрытием которой двинулась длинная линия остальных неприятельских судов. На левом крыле, сзади канонерских лодок, находились баржи с десантом. Русская флотилия из 26 судов построилась в одну линию между Рунсало и Хирвисало, выделив три канонерские лодки уступом вперед для прикрытия своего левого фланга. Атака двенадцати шведских канонерок на этом фланг была отбита огнем стрелков с острова Рунсало. Неприятель, усилив огонь против флангов, обрушился на центр расположения русских. Но передовая шведская галера, встреченная пятью русскими канонерками, была отбита. Та же участь постигла следовавшие за ней в кильватере суда.

Наступила ночь, но шведы не прекращали своих атак и продолжали обстрел. Наконец они двинулись вперед всем фронтом. Все русские гребные суда с громким «ура» ринулись навстречу шведам, осыпая их картечью. Не ожидавший столь смелого контрудара противник пришел в расстройство, и суда его стали поодиночке искать укрытия за островами. После преследования на протяжении не более версты русские суда вернулись на прежнее место. В бою 22 июня потери русских составили 10 убитых и 15 раненых. Одиннадцать судов получили повреждение, но ни одно не вышло из строя. У шведов же были повреждены двадцать судов.

В конце июня в район Або прибыл отряд судов графа Гейдена. Гейден, узнав, что шведы заняли пролив Юнг-фрузунд, решил обойти его через узкий пролив, отделяющий остров Кимито от материка. Пролив этот, в одном месте еще при Петре I заваленный камнями, был непроходим для судов таких размеров, какие имела русская флотилия. Но людям Гейдена за два дня тяжелой работы удалось очистить проход и вывести отряд на настоящий фарватер по другую сторону Юнгфрузунда.

Утром 9 июля русская флотилия встретилась со шведскими канонерскими лодками. Начался бой, закончившийся поражением шведов, которые отступили к острову Сандо, где стоял их корабельный флот. В этом сражении Гейден был ранен, и его сменил капитан-лейтенант Додт. Шведы, заняв сильную позицию на фарватере, снова преградили путь русской флотилии. Но 20 июля Додт атаковал неприятеля и после жаркого боя одержал над ним полную победу: одна часть шведских судов для исправления повреждений отступила к Юнгфрузунду, другая – к острову Карпо, а флотилия благополучно прошла в Або.

Для очистки от шведов пролива Юнгфрузунд (где в одном из узких проходов стояли два их корабля и два фрегата) капитан-лейтенант Новокшенов 7 августа пришел от Дальсбрюка (полторы версты от шведских судов) с тремя канонерками и тремя иолами к неприятелю так близко, что картечь шведских кораблей и фрегатов перелетала через наши лодки и иолы. Ограничившись в этот раз двухчасовой канонадой брандскугелями, Новокшенов на следующий день возобновил ее, введя в дело весь отряд, за исключением пяти судов, оставленных на прежней позиции у Дальсбюка.

Но во время боя оставленные суда неожиданно атаковали 20 неприятельских канонерских лодок и 25 вооруженных баркасов с 600 человек десанта. Шведы напали так быстро и решительно, что менее чем через полчаса свалились на абордаж со всеми пятью русскими судами. Отбиваясь с отчаянной храбростью и перейдя от картечного и ружейного огня к рукопашной свалке, небольшой русский отряд изнемогал в борьбе с сильнейшим неприятелем. Самый жестокий бой происходил на гемаме «Сторбиорн», бывшем под брейд-вымпелом: на нем погибли все начальствующие лица, то есть командир и два офицера, а из нижних чинов 80 человек были убиты и 100 ранены. Овладев гемамом, шведы обрубили его канат и повели на буксире. Но в это время Новокшенов, уже слышавший пальбу при начале сражения, пришел на выручку. Захваченный шведами темам был отбит, три шведские канонерские лодки и два баркаса потоплены со всеми людьми, и отступившие неприятельские суда спаслись только благодаря густому туману и наступившей темноте. Следствием этого боя стало удаление шведов из Юнгфрузунда и открытие свободного прохода для русских судов на всем протяжении шхер от Выборга до Або.

18 августа 1808 года другой отряд русской гребной флотилии из 24 судов под начальством капитана 1 ранга Селиванова, обследовавший шхеры у острова Судсало (и захвативший тут небольшое торговое судно с грузом соли), встретился с вдвое более сильным неприятельским отрядом, состоявшим из 45 канонерских лодок и 6 галер. Они приближались с попутным ветром к выходу из узкого пролива на пространный плес, где находились суда русской флотилии. Селиванов, чтобы не дать шведам возможность воспользоваться преимуществом своих сил на широком плесе, не позволил им выйти из прохода. Немедленно он усилил слабый авангард, защищавший пролив, по которому приближался неприятель. А другие русские суда заняли два прохода, через которые шведы пытались обойти фланги нашей линии.

Сражение продолжалось около восьми часов. Картечная стрельба велась на самом близком расстоянии. Несмотря на облака густого порохового дыма, относимые в сторону русских судов, и немедленную замену поврежденных неприятельских судов новыми, огонь русской артиллерии был столь успешен, что шведы не смогли прорваться на плес, и наступление ночи, почти прекратившей бой, заставило их остаться на прежнем месте. В этом сражении у русских затонули две сильно поврежденные канонерские лодки, люди с которых были спасены, погибли 45 нижних чинов. Капитан Селиванов отправил в Або на ремонт 17 канонерских лодок, получивших от 4 до 8 пробоин и едва державшихся на воде. Потери шведов были значительно больше: 10 канонерских лодок, 8 из которых затонули, а две были взорваны.

Гребной флот, находившийся тогда под главным начальством контр-адмирала Мясоедова, до поздней осени успешно охранял шхеры от высадки шведских десантов.

Шведский корабельный флот, вышедший в июле в море, состоял из 11 кораблей и 5 фрегатов, к которым присоединились два английских корабля из эскадры (16 кораблей и 20 других судов), прибывшей в Балтийское море. Кроме судов, отправленных к шведам, одна часть английской эскадры блокировала Зунд и Бельты, а другая – берега Дании, Пруссии, Померании и Рижский порт.

Русский корабельный флот, вышедший из Кронштадта 14 июля под начальством адмирала П.И. Ханыкова, насчитывал 39 вымпелов (9 кораблей, 11 фрегатов, 4 корвета и 15 мелких судов). Инструкция, данная Ханыкову, предписывала: «стараться истребить шведские морские силы или овладеть ими, прежде соединения их с англичанами; очистить финляндские шхеры от неприятельских судов и содействовать сухопутным войскам недопущением высадки неприятельского десанта».