Poco se sabe sobre la primitiva ocupación humana del sitio, posiblemente un castro prehistórico.
El interés por la población derivaba principalmente por ser vecina de la calzada romana que unía Cáceres con Santarém, a la altura del puente que cruzaba el río Sever (Puente del Portaje).
Tras la conquista de Alcácer do Sal, Alfonso Enríquez (1112-1185) tomó la población entre 1160 y 1166.
En la demarcación del término de Castelo Branco (1214), Marvão ya se incluía en tierras portuguesas.
Por esta razón, al iniciarse el reinado de Dinis de Portugal (1279-1325), la villa y su castillo se verán envueltos en la disputa entre el soberano y el infante Alfonso, viniendo a ser conquistados por las fuerzas del soberano en 1299.
Un nuevo asalto español a la villa se repetiría décadas más tarde, en 1772.
En el siglo XIX, al comienzo de la Guerra Peninsular fue tomada por tropas francesas, liberándose en 1808.