In epoca romana Viggiano sorgeva a valle e costituiva un sobborgo rurale della vicina città romana di Grumentum. La sua storia è caratterizzata da diverse dominazioni, con conseguente insediamento di vari popoli (tra i tanti, Longobardi, Arabi, Bizantini, Normanni, Angioini, Aragonesi, Borbonici, Briganti...); popoli che si trovarono a dover fuggire anche dalle numerose calamità naturali che colpirono il borgo nel corso dei secoli, costringendoli così a rifugiarsi in nuclei sulle alture.
In epoca bizantina, tra i popoli in fuga vi furono molti religiosi, perlopiù monaci italo-greci, basiliani. Dediti alla vita contemplativa nonché alla terra, una volta stanziatisi in territori prescelti divennero una potenza economica, restaurando oratori e chiese, fondando monasteri e creando veri e propri insediamenti di contadini grazie al risanamento di terreni prima inaccessibili. Questi monaci spesso recavano con sé icone e statue di Madonne, tra le quali probabilmente la Madonna Nera di Viggiano che fu nascosta in una grotta sul Sacro Monte e rinvenuta poi nel XIV secolo da un gruppo di pastori incuriositi da strane luci provenienti proprio dal Monte.
La prima processione della Madonna Nera con salita al Sacro Monte risale al XVI secolo.
Il terribile terremoto del 1857 che colpì la Val D'Agri cambiò la storia del borgo di Viggiano, che ne uscì gravemente danneggiato e vide i propri abitanti emigrare in ogni angolo del mondo. Grazie all'abilità degli artigiani viggianesi - esperti costruttori di strumenti musicali - e alla maestria dei suonatori di strada, si diffuse la fama del viggianese quale "musicante girovago" che condusse alla nascita del giornale "L'Arpa Viggianese" già nel 1876.
Anche Viggiano conobbe l'esplosione del fenomeno del brigantaggio postunitario, con la banda del brigante viggianese Giuseppe Miglionico detto "Scoppettiello".
A fine Ottocento, un forte fenomeno migratorio verso l'Australia, il Sudafrica e l'America ha portato in quarant'anni al dimezzamento della popolazione del borgo, oggi pari a circa 3.367 abitanti.