W 1560 wzniesiono nowy zamek z wieżą, później modernizowany, który w czasie wojny trzydziestoletniej był kilkakrotnie oblegany. Od 1592 Żmigród należał do Schaffgotschów, od 1641 do Hatzfeldtów. W 1642 zamek został zdobyty przez wojska szwedzkie pod dowództwem gen. Lennarta Torstenssona. Szwedzi władali zamkiem do 1650. W tym czasie rozbudowano zamek. Następna rozbudowa miała miejsce w latach 1655–1657 z inicjatywy ówczesnego właściciela Żmigrodu, Melchiora von Hatzfeldta. W 1691 wzniesiono nowe fortyfikacje.
W połowie XVII wieku polsko-niemiecka granica językowa przebiegała niedaleko Żmigrodu, włączając miasto do terytorium o dominacji języka polskiego. Miasto było niszczone przez wojny i pożary.
W 1813 w barokowym pałacu Hatzfeldtów doszło do spotkania króla Prus Fryderyka Wilhelma III z cesarzem Rosji Aleksandrem I, podczas którego podpisano (żmigrodzki), którego celem było ostateczne pokonanie Napoleona Bonapartego.
23 stycznia 1945 sowiecki XI Korpus Pancerny 4 Armii Pancernej gen. Dmitrija Leluszenki zdobył Żmigród broniony przez garnizon niemiecki. Miasto zostało zniszczone z wyjątkiem zamku, który został podpalony już po zakończeniu walk.