Российской стороной было принято решение дать бой. Суда были поставлены в узкую протоку между островами. Основой оборонительной позиции стали прамы «Олифант» и «Дикий Бык»
[2]. Плохая погода затягивалась, поэтому русские успели развернуть на берегу две батареи по четыре пушки.
Шведская атака началась в 15:00 20 (31) мая огнем с большой дистанции. Ее главной ударной силой был прам «Геркулес», который маневрировал при помощи шлюпок. Более малочисленные шведы имели преимущество — узость протоки не позволяла русским использовать всю свою корабельную артиллерию. Российская сторона начала ответный огонь после 17:00, при большем приближении неприятеля. Боем на кораблях руководил капитан И. Кайсаров.
Кейт для лучшего обзора находился на береговых батареях. Больше всего выстрелов было сделано с прамов — 1063. С галер стреляли только 322 раза; с батарей — 89. Артиллерийская дуэль продолжалась до 19:30. Шведам не удалось взломать российскую оборону. Российским огнем был выведен из строя «Геркулес». Ему пришлось укрываться за соседними островами. Дважды из-за повреждений выходила из боя флагманская галера Фалькенгрена. Сильно пострадали и российские суда. Два российских прама получили около 60 попаданий.
В восьмом часу вечера шведская флотилия отступила. Противный российской стороне ветер не позволил ей организовать преследование. Высланные около полуночи шлюпки уже не смогли обнаружить шведских судов на расстоянии 20 километров. После ремонта повреждений 24 мая (4 июня) эскадра Кейта начала новый поиск противника. Корабли Фалькенгрена были вновь обнаружены у острова Соттунга. Однако, несмотря на полученное шведами значительное подкрепление (фрегат и нескольких галер), они уклонились от боя. Кейт приказал укрепить соттунгскую островную гавань сразу семью полевыми батареями и стал дожидаться здесь подхода эскадры Ласси.
Бой у Корпо стал единственным морским боем русско-шведской войны (1741−1743). Противостояние главных сил обоих флотов у мыса Гангут 24 мая (4 июня) — 8 (19) июня 1743 года не вылилось в открытое сражение, закончившись отступлением шведов. 12 (23) июня Ласси подошел к Соттунге, и начался завершающейся этап подготовки десанта на шведском побережье. Однако уже 16 (27) июня в Або были подписаны прелиминарные мирные соглашения.