Шведы ударили внезапно, желая нанести поражение русскому флоту в решительном сражении, а затем блокировать его в Кронштадте. Достигнув господства на море, шведский король планировал воспользоваться слабостью гарнизона Санкт-Петербурга. Поскольку основные сухопутные наши силы находились на финской границе, шведы хотели перебросить на судах галерного флота десантный корпус в Ораниенбаум, прямо к порогу Санкт-Петербурга, и отсюда продиктовать условия мира. Однако все пошло не совсем согласно планам.
И сама императрица, и её ближайшее окружение предприняли самые энергичные, хоть и запоздалые меры для отражения опасности. В Петербург были вызваны все возможные силы, включая иррегулярную башкирскую и калмыцкую конницу. Был сделан набор среди горожан, в том числе, в армию забрали разного рода правонарушителей и всех петербургских ямщиков. Начался набор добровольцев, в том числе и из сословий, не подлежавших воинской повинности. Их вооружали за счёт городов, и по окончании войны должны были распустить обратно по домам. У цесаревича Павла забрали его любимую игрушку — Гатчинский батальон — и отправили его на укомплектование флота. Туда же ушло двести арестантов и рекруты.
Для нашего командования не стало тайной, что основные надежды шведы возлагают на действия своего флота. 26 июня императрица отдала адмиралу Грейгу рескрипт с указанием «выйти в море, атаковать неприятеля, разбить его и, если останутся силы, разгромить Карлскрону».
Подписав приказ, Екатерина отдала его Храповицкому на отправку и размашисто при этом перекрестилась.
Дело оказалось непростым. Часть флота, та, что назначена была к отправке в Архипелаг, находилась в Дании, часть — в Ревеле. Из наличных в Кронштадте судов половина оказалась негодными, а команды недостаточно обученными. Тем не менее, адмирал Грейг выполнил приказ, и вышел в море. Первое главное сражение между флотами произошло 6 июля 1788 года у острова Гогланд. Шведы имели превосходство в орудиях в полтора раза, и были явно лучше подготовлены. Но адмирал Грейг решительно атаковал врага.
После тяжелого боя обе стороны потеряли по одному линейному кораблю. Среди пленников, взятых на захваченном русскими шведском линкоре «Король Густав» оказался один из самых высокопоставленных шведских офицеров — вице-адмирал граф Вахмейстер. Многие другие шведские корабли были серьезно повреждены артиллерийским огнем русских, что заставило врага отказаться от высадки десанта у Санкт-Петербурга и отступить в Свеаборг. В ходе преследования русский флот уничтожил еще один шведский корабль, «Кронпринц Густав Адольф».
Однако некоторые капитаны адмирала Грейга, по сути, уклонились от боя, что помешало нанести шведам решительное поражение. Четверо капитанов были отданы под суд и признаны виновными.
21 июня шведская армия перешла границу и атаковала небольшую крепость Нейшлот. Гарнизон её насчитывал всего 230 человек, а состояние было плачевным — каменных бастионов не было, земляной вал обветшал, а старые замковые стены не могли служить достойной защитой от современной осадной артиллерии.
На следующий день была блокирована и вторая приграничная крепость — Фридрихсгам. Тут наш гарнизон был побольше, в 2,5 тыс. штыков, но состояние артиллерии и укреплений тоже оставляло желать лучшего. И, тем не менее, осада у шведов не задалась, и в августе они отступили с территории России.