En la antigüedad fue conocida con el nombre de Nelia y sus primitivos pobladores eran tartesios, según Estrabón.
La ciudad será fortificada con los fenicios.
En la época turdetana fue llamada Obulco, pueblo esencialmente agricultor y comerciante. Su importancia se pone de manifiesto en la acuñación de su propia moneda, en la que aparecía una espiga como símbolo de su actividad.
En el año 38 a.C., durante la época romana, Julio César organiza sus ejércitos en esta villa para la famosa batalla de Munda.
En el periodo de al-Andalus fue llamada Bolcuna.
La conquista cristiana fue llevada a cabo en el año 1238 por el rey Fernando III. Tras la conquista pasaría a su actual denominación. Fue entregada a la Orden de Calatrava para su defensa y repoblación.
Durante la guerra de la Independencia el general Castaños instala aquí su cuartel general y prepara la batalla de Bailén.