동경 127°29′, 북위 34°36′에 위치한다. 여수에서 남서쪽으로 22.2㎞, 화양면 장수리에서 남쪽으로 4.2㎞, 하화도(下花島)에서 북서쪽으로 1㎞ 지점에 있다. 면적은 0.76㎢이고, 해안선 길이는 4.90㎞이다.
백야도 남서쪽에 있는 2개의 섬을 화도라 부르며, 위쪽에 있는 섬을 상화도라 하였다. 상화도는 대화도(大花島)라고도 불렸다. 진달래꽃(야생화)이 많아 꽃섬이라고 부르게 되었다고 한다.
지질은 중성화산암류가 대부분이다. 산줄기가 섬의 중앙에서 동서 방향으로 뻗어 있다. 남쪽은 낮은 산지(최고 높이 148m)로 이루어져 있다. 북쪽은 완만한 구릉지로 농경지와 취락이 분포한다. 남쪽 해안은 암석해안을 이룬다. 1월 평균기온은 2.1℃, 8월 평균기온은 24.8℃, 연강수량은 1,247㎜이다.
2009년 기준으로 인구는 68명(남 29명, 여 39명)이 거주하고 있으며, 세대수는 36세대이다. 조선시대에 배씨(裵氏)가 처음으로 들어와 마을이 형성되었다고 한다. 취락은 동쪽 해안 중앙부의 선착장 부근에 모여 있다. 토지이용 현황은 논은 없고, 밭 0.31㎢, 임야 0.34㎢이다.
주민의 대부분이 농업과 어업을 겸하고 있다. 주요 농산물은 맥주보리와 고구마이고 소량의 콩·마늘·무 등이 생산된다. 주요 어획물은 숭어·멸치·장어 등이고 김과 전복양식도 행해지고 있다. 교통은 여수 중앙동 여객선터미널과 화정면 백야항에서 정기여객선이 운항된다.