I 1657 angrep danskene landene til hertugen, noe som fikk Karl X Gustav til å trekke seg ut av Polen og inn i Danmark. Jylland ble besatt, og på grunn av en kald vinter kunne svenskene gå over isen til Sjælland. Frederik III kapitulerte, og ved freden i Roskilde i mars 1658 måtte kongen avstå de danske landskapene Skåne, Halland, Blekinge og Bornholm, og de norske Båhuslen, Trøndelag, Nordmøre og Romsdal.