Antes de la introducción de la rojigualda (la bandera actual), la bandera que representaba a toda España era la Cruz de Borgoña, que data de 1506, cuando se celebró el matrimonio entre Felipe el Hermoso y Juana I de Castilla. Esta bandera tenía un fondo blanco y una Cruz de San Andrés roja. La Cruz de Borgoña siguió siendo la bandera nacional de España hasta 1793 y continuó utilizándose como bandera del imperio hasta 1898.
La actual bandera española deriva de la bandera naval utilizada en el siglo XVIII, durante el reinado de Carlos III. El rey convocó un concurso para elegir un nuevo diseño que fuera más visible en el mar, y resultó ganador el presentado por Antonio Valdés y Fernández Bazán, ministro de Marina. La bandera constaba de dos franjas rojas y una amarilla con los escudos de Castilla y León, Granada, Aragón, Navarra y las Dos Sicilias.

En el siglo XIX, España experimentó una serie de cambios políticos y sociales. Uno de los momentos más significativos se produjo durante la Primera República Española (1873-1874), cuando se intentó sustituir la rojigualda. Sin embargo, sobrevivió a estos cambios y siguió siendo un símbolo de la nación española.
Durante la Guerra Civil (1936-1939), el ejército franquista utilizó la rojigualda como bandera oficial, añadiendo un águila tras la victoria. Durante la dictadura de Franco (1938-1975), la bandera sufrió cambios en la forma del escudo y se mantuvo en uso incluso después de su muerte en 1975, durante los primeros años de transformación democrática en España, con algunos cambios, hasta 1981.

La versión moderna de la bandera española fue aprobada por la Constitución de 1978, que marcó la vuelta a la democracia en España tras décadas de dictadura. Consta de tres franjas horizontales: roja, amarilla (el doble de ancha que las otras dos) y roja. En la franja amarilla está el escudo nacional. Este escudo incluye el sello real entre dos columnas coronadas conocidas como las Columnas de Hércules, con la inscripción "Plus Ultra". La ubicación exacta y las proporciones del escudo en la bandera se definieron posteriormente en una ley de 1981.