Однако новый польский король Ян-Казимир, который тоже вел родословную от династии Ваза, тоже начал заявлять права на шведский престол. После того как он сделал это повторно, Карл X Густав объявил ему войну. Шведская армия под личным командованием Карла X Густава вторглась на территорию Речи Посполитой. Польский король Ян-Казимир явно не учел, что его страна еще не успела оправиться от потрясений. Восстание 1648 года в Украине под предводительством Богдана Хмельницкого перекинулось и на белорусские земли, а Переяславская рада 1654 года способствовала началу русско-польской войны. В то же время вероломную политику проводил крымский хан. Русские войска взяли крепость Смоленск, разгромили войско великого гетмана литовского Яна Радзивилла под Шепелевичами, и к июлю 1655 года овладели Могилевом, Гомелем, Минском, большей частью белорусских и литовских территорий. Именно в такой ситуации летом 1655 года 17-тысячная королевская армия, высадившись в шведской Померании, двинулась затем маршем на польские города Познань и Калиш.
Швеции к тому времени принадлежала большая часть южного побережья Балтийского моря. Начало новой войны к югу от Балтики означало перспективы борьбы за гегемонию в Балтийском бассейне, на которую претендовали сильные Дания, Пруссия, Россия. Лоскутные же европейские владения Швеции были желанной добычей для монарха Священной Римской империи императора Леопольда I. Поэтому король Карл X Густав, начав войну против ослабленной Речи Посполитой, шел на немалый риск.
Уже с первых дней поход шведской армии ознаменовался военными успехами — крупные и укрепленные польские города Познань, Калиш, Варшава и Краков пали почти без сопротивления. К концу 1655 года вся северная Польша, за исключением порта Данциг, находилась в руках шведов.
Победы шведской армии в Польше вызвали в Европе сильный резонанс. Русский царь Алексей Михайлович заключил перемирие с Речью Посполитой и объявил Швеции войну. Голландия послала в Балтийское море для защиты Данцига сильную эскадру. На конференции в Тысковице польская шляхта также решила поддержать короля Яна-Казимира в войне против шведов.
Такое положение дел заставило короля Карла X Густава снять осаду с Данцига и в начале 1656 года двинуться в Галицию. Шведский монарх принудил к военному союзу курфюрста Пруссии Фридриха-Вильгельма Бранденбургского.
Но вскоре внешнеполитические обстоятельства заставили Карла X Густава уйти из Польши. В Ливонии и Ингерманландии шведы воевали с русскими. В марте 1657 года Священная Римская империя объявила войну Швеции, и австрийские войска двинулись в Польшу. В это время Карла X Густава предал курфюрст Фридрих-Вильгельм Бранденбургский. И в довершение всех бед для шведов в войну, несмотря на скудость своей казны, вступила Дания.
Шведский король со своими главными силами двинулся на новых врагов через север Германии.
Шведы осадили датскую крепость Фредериксодде, которая прикрывала собой Ютландский полуостров, и 24 сентября она пала. После этой победы король решил перенести войну на острова Дании и по льду переправил свою армию на остров Фиония. Переход был рискованным: на глазах у Карла X Густава под лед провалились кавалерийский эскадрон и королевская карета.
Находившиеся на Фионии около 5 тысяч датских войск после непродолжительного сопротивления сложили оружие. Затем шведская армия оказалась под стенами Копенгагена. 28 февраля 1658 года был подписан Роскильдский мирный договор, по которому Дания признавала себя побежденной и уступала Швеции значительные территории на юге Скандинавского полуострова, острова Борнхольм и Хвен, а также обязывалась закрыть балтийские проливы для флотов враждебных Швеции государств.
Но когда Голландия решила послать в Балтику свой флот, Дания отказалась исполнять свои обязательства по мирному договору. В ответ на это шведский король, собрав все свои транспортные суда, решил во главе 10-тысячной армии десантироваться на островах Дании. 9 августа шведские войска вновь оказались под стенами датской столицы, а королевский флот бросил якоря на ее рейде.
29 октября 1658 года у пролива Зунд состоялось морское сражение голландского и шведского флотов. Шведы потеряли пять кораблей, а голландцы — всего один корабль и потому вышли победителями. Вскоре осада Копенгагена со стороны моря прекратилась. Не увенчался успехом шведов и штурм датской столицы 12 февраля 1659 года.
Зато в начале апреля королевская эскадра под флагом адмирала Бьелкенштерна блокировала голландские и датские корабли во Фленсбург-фиорде у берегов Померании, и море оказалось в полной власти шведов. Карл X Густав не замедлил воспользоваться победой флота — его войска захватили датские острова Лоланд и Фальстер.