Вскоре голландский флот из 35 кораблей под командованием адмирала Вассенара встал на якоре у входа в пролив Зунд. Шведский флот под командованием графа Карла Врангеля был сильнее голландского (45 кораблей), но уступал противнику в выучке корабельных экипажей. 29 октября состоялось морское сражение, и шведскому флоту после потери пяти кораблей пришлось укрыться в Ландскроне. Голландцы потеряли в морском сражении всего один корабль и потому вышли победителями. Вскоре они блокировали флот противника в порту Ландскроне, и осада Копенгагена со стороны моря прекратилась.
Карл X Густав оказался в тяжёлом положении, поскольку его армия оказалась блокированной на датских островах. Ему пришлось в связи с прибытием голландцев снять осаду Копенгагена и отойти в своей укреплённый лагерь неподалёку от датской столицы. Попытка английской эскадры прийти на помощь Дании не увенчалась успехом: в проливе Зунд её встретили сильные ветры, и англичанам пришлось вернуться на зимовку на Британские острова.
Наступившая зима принесла сильные морозы, и прибрежные воды покрылись льдом. Шведский король вновь подвёл свои войска к стенам Копенгагена и в ночь на 12 февраля 1659 года предпринял штурм датской столицы. Однако успеха он не добился, поскольку защитники города знали о готовящемся приступе и сумели к нему хорошо подготовиться.
Тем временем великий прусский курфюрст Фридрих-Вильгельм, принявший на себя главное командование союзными войсками, к весне подготовил сильную десантную экспедицию на датские острова. Союзники сосредоточились у Фленсбурга, куда было стянуто значительное число транспортных судов. Монарх Пруссии ожидал только подхода теперь уже союзного голландско-датского флота для прикрытия десантной экспедиции от шведов.
Шведский флот направился к Фленсбургу с целью уничтожить десантные суда противника. Но южнее острова Лангеланда он встретился с голландско-датским флотом, гораздо более сильным. Союзными морскими силами командовал датский адмирал Хельт. Шведы стали уходить, но два их последних корабля сели на мель и были расстреляны голландцами.
Узнав о таком поражении, король Карл X Густав приказал сосредоточить весь военный флот Швеции у берегов Померании и перейти к активным действиям. В начале апреля королевская эскадра под флагом адмирала Бьелкенштерна блокировала голландские и датские корабли во Фленсбург-фиорде. Теперь море оказалось в полной власти шведов.
Карл X Густав не промедлил воспользоваться победой королевского флота. Шведские войска захватили датские острова Лоланд и Фальстер. В такой ситуации голландский флот, большая часть которого находилась под Копенгагеном, решил перекрыть морские пути между островами Дании. Но адмиралу Вассенару пришлось отказаться от этого: в начале апреля в проливе Зунд бросили якоря корабли английской эскадры (60 вымпелов и 2290 орудий) под флагом адмирала Монтегю. У Лондона активность Голландии в Балтийском море вызывала большую тревогу.
Однако критическое положение голландцев и датчан, блокированных во Фленсбург-фиорде, побудили флотоводца Вассенара прийти к ним на помощь. 30 апреля состоялось морское сражение, которое из-за сильного ветра не позволило противникам сходиться для абордажного боя. Все дело свелось к двухкратной бомбардировке друг друга на встречных курсах. Шведы не имели потерь в кораблях, но у них был убит флотоводец Бьелкенштерн, что стало причиной ухода в гавань Ландскроны. Затем к берегам Дании из Голландии прибыла вторая эскадра под командованием адмирала Рюйтера.
Вскоре в Гааге начались переговоры трех европейских держав — Великобритании, Голландии и Франции. Английский и голландский флоты в войне объявлялись нейтральными, а воюющим сторонам предлагалось заключить мир. Тем временем прусский великий курфюрст начал действовать. 17 мая пала крепость Фредериксодде, которую защищал шведский гарнизон. Союзники заняли датский остров Фенэ, но их попытка высадиться на остров Фионию закончилась полной неудачей, при этом они лишились почти всех десантных средств.
Поскольку положение шведов на острове Фиония стало опасным, то король вызвал из Ландскроны свой флот с десантом на борту. Десант был высажен, а королевский флот после встречи с голландским, который не решился в присутствии англичан атаковать шведов, благополучно возвратился в Ландскрону.
Прусский монарх, командовавший союзными войсками, подготовил новую десантную экспедицию на остров Фионию. Шведы узнали об этом, и из Ландскроны вышел отряд кораблей под командованием майора Кокса. Вблизи острова Зеландия произошёл морской бой, в котором шведский отряд сжёг все вражеские транспортные суда, из четырех кораблей конвоя один взорвался, а остальные спустили флаги и сдались. После этого майор Кокс напал с моря на порт Оргус и потопил там ещё 30 десантных судов союзных войск — прусских, австрийских и польских.