A 17. század korábbi háborúiban Svédország jelentős területeket hódított el Dániától és Norvégiától és megfosztotta a dánokat korábbi kelet-balti dominanciájuktól. Frigyes azért érthető aggodalommal figyelte amikor egy gyakorlott és agresszív hadvezér, X. Károly Gusztáv került a svéd trónra 1654-ben. A svéd király valóban egy éven belül meg is indította hadait, ám a dánok megkönnyebbülésére Lengyelország ellen. Frigyes várt, amíg a svédek kellően bebonyolódnak a lengyel harcokba, majd 1657 nyarán hadat üzent Svédországnak. Károly Gusztáv azonnal Dánia felé indult és dél felől megszállta Jyllandot (Jütland), ám Fredericia erődjének ostromával sok időt vesztett, és a dán flotta is sikerrel szorította vissza a hajóhadát, ami így nem tudta segíteni átkelését Koppenhága felé. A tél rendkívüli hideggel köszöntött be, a svéd király azonban kivágta magát szorult helyzetéből, és egy lehetetlennek tartott manőverrel átkelt a befagyott tengerszorosokon először Fyn, majd Sjælland szigetére. Mikor a svéd hadsereg megjelent Koppenhága előtt, a dánok pánikba estek és azonnal békét kértek. A roskildei béke igen szigorú feltételeket tartalmazott, Dánia lemondott minden Øresundon túli tulajdonáról és a norvég Trøndelag tartományról (azaz Trondheim városról és vidékéről).