Tradicionalmente, consideram-se que os sete castelos da nossa bandeira são um símbolo das vitórias portuguesas sobre os mouros, no reinado de D. Afonso III, que terá supostamente conquistado sete fortalezas inimigas durante a conquista do Algarve, terminada em 1249. Assim, estes castelos seriam as fortalezas de Estômbar, Paderne, Aljezur, Albufeira, Cacela, Sagres e Castro Marim.
Mas esta explicação acaba por não convencer muito, se tivermos em conta o facto de o próprio rei D. Afonso III não ter sete castelos na sua bandeira, e sim um número não especificado destes. Algumas reconstruções exibem cerca de 16 castelos, tendo este número sido alterado para 12 em 1385, e fixado em 7 em 1485.
Como outro argumento contra esta teoria, a conquista do Algarve não foi bem uma conquista, porque os sarracenos tinham uma aliança com o rei de Castela, Afonso X, pelo que a conquista pelas armas teria necessariamente de envolver o reino vizinho.
Outra explicação para a origem dos castelos na borda vermelha nas nossas bandeiras reside nos laços de Afonso III com Castela, já que a sua mãe e a sua segunda mulher eram castelhanas, sendo que os seus brasões consistiam num castelo dourado sobre campo vermelho. D. Afonso III acabou por casar em segundas núpcias com Beatriz de Castela, apesar de já estar na altura casado com D. Matilde, Condessa de Bolonha, como forma de pôr fim ao conflito criado pela conquista do Algarve.
Apesar da oposição do Papa ao casamento, uma vez que o rei estava já casado, a união acabou por se realizar, tendo dela nascido D. Dinis e também os Castelos (relativos a Castela) representativos da unidade territorial, do Minho ao Algarve. Este casamento funcionou como uma aliança que pôs termo à luta pelo Algarve, resultado também em mais riqueza para o nosso país, já que D. Beatriz, por morte do seu pai, recebeu uma região a Este do Guadiana, onde se incluíam Moura, Serpa, Noudar, Mourão e Niebla.
Assim, não está ainda bem claro para os historiadores o porquê de existirem sete castelos na bandeira. O que se sabe ao certo é que foi no reinado de Afonso III que os castelos entraram nas armas portuguesas. Mas isso não invalida que outras teorias, de cariz mais popular, acabem por surgir.
Por exemplo, alguns historiadores argumentam que os 7 castelos da bandeira eram os castelos conquistados por D. Afonso Henriques aos Mouros: Coimbra, Óbidos, Santarém, Lisboa, Palmela, Ourique e Évora. Mas a verdade é que D. Afonso Henriques conquistou bem mais que 7 castelos durante o seu reinado. Além disso, como vimos, os castelos na bandeira apenas apareceram no reinado de Afonso III.
Outra lenda diz que os pontos brancos simbolizariam os 5 reis Mouros mortos por D. Afonso Henriques em Sevilha, Badajoz, Elvas, Évora e Beja, embora se pense que esta explicação seja de origem bem posterior. Segundo a lenda, os pontos foram incorporados em gratidão pelas vitórias, sob a forma de cruz cristã, que representava a vitória divina sobre os 5 reis inimigos, cada um carregando as cinco chagas de Cristo sob a forma de um besante de prata.
Destes besantes se disse (e diz ainda) que, se somados, representam os 30 dinheiros que Judas recebeu pela sua traição a Cristo, embora para se chegar a esse número se tenham que contas os besantes centrais duas vezes.
Contrárias a estas lendas, as evidências sugerem que o número de besantes em cada escudo foi superior a cinco durante um longo período a seguir ao reinado de D. Afonso Henriques. Como esta lenda apenas aparece registada em 1419, numa crónica de Fernão Lopes, esta explicação é apenas um mito carregado de patriotismo, sustentando a ideia de que Portugal foi criado por vontade divina e estava assim destinado a grandes feitos.