동경 124°76′, 북위 34°20′에 위치한다. 목포에서 서남쪽으로 40㎞, 안좌도(安佐島)에서 남쪽으로 1㎞ 지점에 있다. 면적은 2.54㎢이고, 해안선 길이는 6.7㎞이다. 섬의 형태가 사방 어느 곳에서 보아도 반달 모양으로 보여 반월도라 부르게 되었다고 한다.
1670년대에 인동장씨가 이주·정착하면서 마을이 형성되었다. 원래 지도군 기좌면에 속하였는데, 1914년에 토촌과 대리마을을 병합하여 무안군 기좌면 반월리가 되었다. 1917년에 안좌면에 편입되었고, 1969년에 신안군이 무안군에서 분군함에 따라 신안군 안좌면에 속하게 되었다.
중앙에 위치한 최고봉인 견산(肩山, 202m)을 중심으로 대부분 산지로 이루어져 있다. 해안은 사빈해안(沙濱海岸)이 대부분이고 동쪽 해안에는 간석지가 발달되어 있다. 1월 평균기온은 1℃, 8월 평균기온은 26.3℃, 연강수량은 1,100㎜이다.
2009년 기준으로 인구는 121명(남 52명, 여 69명)이고, 세대수는 56세대이다. 취락은 저지대인 북쪽 해안의 토촌마을과 남쪽 해안의 반월마을에 집중되어 있으며, 반월마을이 중심지 역할을 한다.
토지이용 현황은 논 0.20㎢, 밭 0.57㎢, 임야 1.33㎢이다. 주민은 대부분이 농업에 종사한다. 주요 농산물은 보리이고 쌀·감자·콩·마늘·참깨·고추 등이 생산된다. 연안에서 김 양식업도 행하여지고 있다.
2008년에 안좌도에서 박지도를 거쳐 반월도까지 연결되는 목조다리인 ‘천사의 다리’가 건설되었다. 안좌도 남쪽의 두리 선착장에서 반월도의 북쪽 토촌 선착장 사이는 소형 선박을 이용하여 통항할 수 있다. 교육기관으로는 안좌초등학교 반월분교장이 있다.