Haapsalu piiskopilinnus rajati kastell-linnusena vahetult pärast kiriku sisseõnnistamist 1279. aastal ja kuulub viimastega kokku. Haapsalu linnuse esimese etapi valmimisajaks loetakse aastat 1300. Algselt 8 meetri kõrgust ringmüüri kõrgendati hiljem, nii et küündis koos rinnatisega 15 meetrini.
14. sajandil linnuse ehitamine jätkus. Kastelli põhjakülgedele kerkis kaks nelinurkset torni.
15. sajandil kõrgendati linnusemüüre veelgi, nii et need saavutasid tornide müüriosaga peaaegu sama kõrguse. Püstitati ka esimene algrajatisest väljapoole jääv ehitis: lääneküljel asuv nelinurkne vahitorn, mille funktsiooniks oli arvatavasti kiriku peaportaali turvamine. Sisehoov sai sel ajal täies ulatuses ristkäigu.rajati ka linnuse idavärava ette väike eeslinnus, sama sajandi lõpul tugevdati ka õhukese ja kohati varisemisohtlikke müüre. Aastail 1507—1508 rajati suur idapoolne eeslinnus.
Liivi sõjas sai linnus tugevasti kannatada ja moderniseeriti rootslste poolt uute kindlustusreeglite kohaselt. Eeslinnuste jäänused kasutati ära unikaalse müürisisese vallkindlustuse loomiseks.
Haapsalu linnuse vanima osa kavatsesid De la Gardied ümber ehitada uhkeks renessansilossiks. Selleks tellis Jakob De la Gardie Augsburgi arhitektilt Matthias Hollilt ka projekti, kuid tööd katkestati 23. märtsil kell 3 öösel 1688. aastal puhkenud tulekahjus, kus said kannatada kõik lossi eluruumid, kiriku katus, orel, mille krahv Magnus Gabriel De la Gardie oli nelipühaks 1658. aastal kinkinud. Tules hävis kõik, välja arvatud kirik. Nii seisis lossihoov koos varemetega poolteist sajandit ja hoovi kasutas linnarahvas karjamaana.
Toomkirik koos torniga ehitati uuesti üles, pandi ka uus kirikukell, aga 18. märtsi kevadtorm 1726. aastal viis kiriku katuse ja pühakoda jäeti maha kuni pastor Leopold Rödderi algatusel ja juhtimisel 15. oktoobril 1889. aastal taaspühitseti. Hiljem on küll kirikut rüüstatud, aga tules ja sõdades kannatada pole enam saanud.
1980. aastatel alustati varemete konserveerimist ja restaureeriti kirik. 2001. aastal avastati suure linnuse põhjapoolse müüri konserveerimistöödel vastu linnamüüri ehitatud ja erakordselt hästi säilinud keskaegse esindusliku hoone rusud. Seinamaalingute ja iseäranis kaunite ahju kahlitega hoone hävis arvatavalt 1563. aastal, mil Haapsalu piiskopilinnust piirasid Rootsi väed.