동경 126°58′, 북위 34°38′에 위치한다. 목포에서 서남쪽으로 64㎞, 하의도(荷衣島)에서 서쪽으로 3.4㎞ 지점에 있다. 섬의 북쪽에는 도초도(都草島)가, 남쪽에는 신도(薪島)가 있다. 면적은 4.26㎢이고, 해안선 길이는 10.3㎞이다. 해변의 경관이 뛰어나 다도해해상국립공원으로 지정되어 있다.
하의면에서 가장 높은 산이 있어 대야도로 부르게 되었다고 전해진다. 섬 전체가 높은 산들로만 이루어졌다고 하여 ‘대서도’로도 불렸으며, 또 큰 바다 가운데 있는 섬이라 하여 ‘대하도’라 불리다가 현재의 ‘대야도’가 되었다는 설도 있다.
지질은 대부분 산성화산암류로 이루어져 있다. 섬의 남쪽과 북쪽은 비교적 높은 산지(최고 높이 306m)로 급경사를 이루고, 동쪽 중앙의 좁은 저지(低地)에는 농경지와 마을이 있다. 해안은 돌출한 갑(岬)과 깊숙한 만(灣)이 반복되며, 남쪽에는 암석해안이 발달해 있다.
해송(海松)과 각종 난초가 자생하며, 모래밭과 송림이 좋은 천혜의 해수욕장이 형성되어 있다. 1월 평균기온은 2℃, 8월 평균기온은 26℃, 연강수량은 1,024㎜이다.
2009년 기준으로 인구는 44명(남 15명 여 29명)이고, 세대수는 27세대이다. 1671년(현종 12)에 정씨가 처음으로 들어와 살았다고 전한다. 취락은 중앙 저지의 동북쪽으로 트인 만안(灣岸)에 집중되어 있다. 토지이용 현황은 논 0.01㎢, 밭 0.44㎢, 임야 3.68㎢이다.
주민의 대다수가 농업과 어업을 겸하고 있다. 주요 농산물로는 쌀·보리·콩 등이 생산된다. 근해에서 고등어·갈치·조기 등이 잡히며, 김과 톳 양식도 행해지고 있다. 교통은 하의도 옹곡항에서 대야도까지 도선이 왕래한다.