Vēsture Viļakas pilsētas vēsture ir saistīta ar latgaļu Atzeles zemi, kas 10.–12. gs. atradās starp Tālavu rietumos un Pleskavas kņazisti austrumos. Viļaka bija Atzeles zemes Purnavas novada centrs – latgaļu koka pils atradusies Eržepoles pilskalnā, pilsētas ziemeļrietumu malā. 13. gs. sākumā novada teritorija nonāca Rīgas arhibīskapa pārvaldībā – Livonijas robežu aizsardzības sistēmā tam bija īpaša nozīme. 1293. gadā Rīgas arhibīskaps Johanness fon Fehtens (Johannes von Vechten), lai ieviestu katoļticību savā Atzeles īpašumā un aizsargātu pret Novgorodas kņazu iebrukumiem, pavēlēja cisterciešu ordeņa mūkiem uz Viļakas ezera salas uzcelt nocietinātu klostera ēku Marienhauzu (Marienhausen) jeb Marijas māju. 1509. gadā Rīgas arhibīskaps Jaspers Linde (Jasper Linde) klosteri pārbūvēja par nocietinātu mūra pili, lai aizsargātu pret Maskavijas karaspēka iebrukumiem.
Livonijas kara laikā (1558–1583) Marienhauzenes pils tika izpostīta, bet, nonākot Polijas karaļa Stefana Batorija (Stefan Batory) īpašumā, tā tiek atjaunota un nostiprināta. 17. gs. sākumā pili divas reizes ieņēma zviedri (1601, 1625) un atkal to izpostīja, tomēr poļi uzskatīja, ka vietai ir stratēģiska nozīme, un pili vienmēr atjaunoja. Pēc Altmarkas pamiera noslēgšanas (1629) Viļaka kļuva par Marienhauzenas stārastijas centru, tomēr Viļakas stārasti – ievērojami fon Hilzenu (von Hülsen) dzimtas magnāti – šeit uzturējās reti, un pils galvenokārt bija garnizona apmetne.
Lielā Ziemeļu kara laikā, 18. gs. sākumā, Krievijas cara Pētera I (Пётр I) karapulki pili sagrāva pilnībā, un tā vairs netiek atjaunota. Līdz mūsdienām ir saglabājušies vien atsevišķi pils mūra sienu fragmenti un zemes vaļņi – Marienhauzenes pils ir atzīta par valsts nozīmes arheoloģijas pieminekli. 1770. gadā iepretim salai ezera krastā bija katoļu baznīca ar vairākām ēkām, ap kuru sāka veidoties ciems.
18. gs. sākumā tika izveidota Viļakas muiža, kas sākotnēji piederēja fon Hilzenu dzimtai. Pēc 1738. gada inventarizācijas redzams, ka muiža bija sadalīta trīs “galos” – Viļakas (19 sādžas), Timšānu (17 sādžas) un Balvu (14 sādžas). Pēc Polijas un Lietuvas kopvalsts pirmās dalīšanas (1772) Viļakas stārastija līdz ar pārējo tagadējās Latgales teritoriju tika iekļauta Krievijas Impērijas sastāvā un administratīvi tika iekļauta vispirms Pleskavas, tad Vitebskas guberņas Ludzas apriņķī.
Viļakas muiža kā kroņa muiža nonāca Katrīnas II (Екатерина II) rīcībā, kura to ar 3112 vīriešu kārtas zemniekiem uzdāvināja savam galma padomniekam Ivanam Jelaginam (Иван Перфильевич Елагин). Ap muižu izvaidojās miests, kura iedzīvotāji pārsvarā nodarbojās ar sīktirdzniecību. Muižai vairākkārt mainījās īpašnieki; 1824. gadā tā nonāca grāfu Lippe-Lipsku (Lippe-Lipsk) dzimtas īpašumā līdz 1920. gada agrārajai reformai. 19. gs. beigās Viļakas muiža bija trešā lielākā muiža Latgalē. 1918. gadā muižas pils, pārvaldnieka māja un daudzas saimniecības ēkas tika nodedzinātas.
Latvijas Neatkarības kara laikā, 1920. gada 9. janvārī, Viļaku Ziemeļlatgales atbrīvošanas operācijas ietvaros ieņēma 8. Daugavpils kājnieku pulks. Pēc Latvijas Republikas proklamēšanas daudz pūļu tika veltīts, lai attīstītu Latgales pierobežas pagastus, – Viļakā tolaik darbojās katoļu, pareizticīgo un luterāņu draudzes, divas pamatskolas un mežkopības skola. 1925. gadā Jaunlatgales apriņķa Viļakai tiek piešķirts biezi apdzīvotas vietas (ciema) statuss. Ciemā bija apmēram 150 mājas un aptuveni 800 iedzīvotāju – Viļaka kļuva par apkārtējā lauksaimniecības novada (230 km2), kas atradās mežu un purvu ielenkumā, centru. Bijušajās muižas ēkās darbojās linu fabrika, bija arī ķieģeļnīca.
1931. gadā uz Viļakas muižas pamatiem uzbūvētā ēkā tika atklāta Viļakas ģimnāzija, savukārt 1935. gadā dzīvojamo ēku skaits bija pieaudzis līdz 313, darbojās 90 veikali, vairāki rūpniecības un amatniecības uzņēmumi, kā arī divas pamatskolas. No ciema iedzīvotājiem 59 % bija latvieši, 29 % – ebreji un 7 % – krievi.
Pēc Otrā pasaules kara Viļakas apkaimes mežos ļoti aktīvi darbojās nacionālās pretestības kustības dalībnieki – 1995. gadā netālu no katoļu baznīcas tika atklāts piemineklis apkaimē kritušajiem Ziemeļlatgales nacionālajiem partizāniem.
Padomju okupācijas gados Viļakā darbojās ražošanas apvienību “Latvijas lini”, “Sarkanais rīts” un “Daiļrade” filiāles, pienotava, maizes ceptuve, dažādas sadzīves pakalpojumu kombinātu darbnīcas, remonta un celtniecības iecirknis, šeit atradās arī sovhoza “Viļaka” centrs.
Viļaka bija Viļakas apriņķa centrs (1945–1949), Abrenes rajona centrs (1950–1959), pēc tam tika iekļauta Balvu rajonā. 2009. gada Latvijas administratīvi teritoriālās reformas rezultātā Viļaka kļuva par novada centru. Viļakas novads pastāvēja līdz 2021. gadam, kad reformas rezultātā tika pievienots Balvu novadam.