国東半島と姫島(右上) アメリカ航空宇宙局撮影(1994年)
国東半島の北約6km、瀬戸内海の西部、周防灘と伊予灘との境界に位置する。最高峰の矢筈岳(標高266.6m)を中央に、西に達磨山(標高105.0m)、東に焼野岳(標高132.0m)、東端に柱ケ岳(45.0m)等が連なり、南北が約4kmであるのに対して東西が約7kmと、東西に細長い島である。
矢筈岳と達磨山の間のくびれた平地部に、北浦、西浦、南浦、松原といった中心集落が形成されており、その南岸には姫島港が位置する。また、北岸にはクルマエビの大規模な養殖場がある。