Se identifica a Roses con la antigua Rhode griega, fundación rodia del siglo VIII a.C.. Los datos arqueológicos confirman la presencia griega bajo la actual ciudadela, llegándose a descubrir monedas de plata de los siglos IV y III a.C. con la inscripción Rhodeton.
La aparición del monasterio benedictino de Santa María en el siglo X fomentaría el poblamiento de una localidad integrada en el condado de Empúries, hasta que en 1402 logró constituirse en municipio propio. Los ataques de los piratas motivaron la construcción de la ciudadela por orden de Carlos V, y la población no se decidió a abandonar sus muros hasta los siglos XVII y XVIII.