La guerra siguió su curso con fortuna cambiante. Gustavo, que no contaba con grandes cualidades militares, tomó parte activa en la guerra y obtuvo algunas victorias menores: en tierra en la batalla de Uttismalm (junio de 1789) y la batalla de Valkeala (abril de 1790), y en mar en la batalla de Fredrikshamn (mayo de 1790). Pero también bajo el liderazgo de Gustavo se sufrió una aplastante derrota ante la flota de Catalina II en la primera batalla de Svensksund en agosto de 1789. En junio de 1790, toda la flota sueca con el rey, el duque Carlos y 30.000 hombres a bordo fue encerrada en la bahía de Víborg. Los suecos lograron escapar casi milagrosamente gracias a un viento favorable y finalmente derrotaron el 9 de julio de 1790 bajo mando del vicealmirante Olof Cronstedt y el propio Gustavo III a la flota rusa, superior en número, en la segunda batalla de Svensksund, una de las más grandes victorias navales de Suecia.