Le château se trouve sur une petite île dans le lac de Grangent, surplombé par le château d'Essalois ; il se situe au sud du territoire de la commune de Saint-Just-Saint-Rambert (Loire).
Lorsqu'il fut construit, vers l'an 800, l'île était en fait un promontoire qui s'élevait à une cinquantaine de mètres au-dessus du fleuve, une situation radicalement bouleversée par la construction du barrage de Grangent. Pendant le Moyen-Âge et plus tard, il subit la destruction, la reconstruction, et plusieurs restaurations.