2 июля (22 июня по старому стилю) 1788 года шведская армия под командованием короля Густава III перешла границу Российской империи. Шведский король считал, что настал удобный момент для реванша за поражения в Северной войне и в русско-шведской войне 1741-1743 годов. Воспользовавшись поддержкой Англии, Пруссии и Голландии, опасавшихся усиления России на Балтике, а также тем, что основные российские военные силы были заняты в войне с Турцией, он собирался вернуть утраченные территории. Вместе с началом боевых действий Густав III выдвинул российской императрице, своей двоюродной сестре Екатерине II довольно странный ультиматум. В нем, например, шведский монарх требовал, чтобы Россия вернула Швеции все территории, полученные в результате побед русской армии при Петре I и Елизавете Петровне, разоружила русский флот и заключила невыгодный мир с Турцией.
Основные боевые действия русско-шведской войны 1788-1790 годов развернулись на море. В 1790 году шведы собирались разгромить русский флот по частям и затем захватить Санкт-Петурбург. Густав III планировал сначала уничтожить эскадру, стоявшую на рейде Ревеля (Таллина). Для этого он собрал значительные военно-морские силы: 22 линейных корабля, 4 фрегата и 4 вспомогательных судна. Ревельская эскадра, которой командовал адмирал Василий Яковлевич Чичагов, насчитывала 10 линейных кораблей, 5 фрегатов и несколько более мелких судов. То есть силы были явно неравны, шведы в несколько раз превосходили русских по огневой мощи. Зная об этом, адмирал Чичагов поставил свои корабли в ревельской гавани на якорь в три линии, таким образом, чтобы он могли немедленно развернуться бортом, открыть огонь из всех орудий и нанести максимальный урон противнику.
План шведского адмирала Норденшельда состоял в том, чтобы шведские корабли шли в кильватерном строю (то есть один за другим) мимо ревельской бухты, расстреливая русские корабли, затем разворачивались и снова проходили по кругу в том же порядке. С помощью такой «карусели» в несколько проходов, он намеревался разгромить русский флот. Однако этот замысел не удался. На море поднялся сильный ветер, штормило, и при качке шведские артиллеристы не могли точно прицеливаться. В результате львиная доля шведских ядер не попадала в цель. В то же время русские моряки, чьи корабли стояли на якоре, стреляли более точно, причем могли сосредоточить всю силу огня на нескольких проходивших шведских судах. Особенно «не повезло» тем шведским судам, которые подходили поближе, чтобы повысить прицельность стрельбы. Их осыпали буквально градом ядер и картечи. Еле-еле сумел выйти из-под обстрела флагман шведской эскадры — «Густав III», другой линейный корабль получил такие повреждения, что его команда предпочла сдаться, два корабля сели на мель, причем один из них был сожжен, а другому удалось уйти, но для этого с него пришлось сбросить большую часть пушек. Через два часа исход боя был уже ясен, поэтому шведский флот развернулся и отступил.
Русские потери в ревельском сражении составили всего 8 человек убитыми и 27 — ранеными. Шведы потеряли убитыми и ранеными более 130 человек, в плен на захваченном корабле попали 520 моряков.
Все, благодаря кому состоялась морская победа российского флота, были награждены. Адмирал Чичагов получил высший орден святого Андрея Первозванного, его сын, участник сражения капитан Павел Васильевич Чичагов —орден святого Георгия IV степени, командиры кораблей — золотые шпаги с надписью «За храбрость».
Главным итогом сражения стал провал планов Густава III разбить русский флот по частям и обеспечить Швеции господство на Балтийском море. Ревельская победа позволила русскому флоту взять инициативу в свои руки и тем самым приблизить заключение выгодного для России мира.