동경 126°14′, 북위 33°24′에 위치하며, 한림읍 웅포리 해안에서 3㎞ 지점에 있다. 면적은 0.59㎢이고, 해안선 길이는 3.15㎞이다. 조선 초기에는 화살대와 죽순이 많이 나서 죽도라 부르기도 하였다. 또 한라산에서 봉이 하나 날아와 생성됐다고 해서 ‘비상(飛翔)의 섬’이라 부르기도 한다.
『신증동국여지승람(新增東國輿地勝覽)』에는 “서산(瑞山)은 고려 목종(穆宗) 5년 6월에 산이 바다 가운데에 솟아나왔다. 산에 네 구멍이 뚫리고 용암이 솟아나와 닷새 만에 그쳤는데, 그 물이 모두 엉기어 기왓돌[瓦石]이 되었다. 10년에 상서스러운 산이 바다 가운데에 솟아나왔다.”라고 기록되어 있는데, 현재 서산을 비양도에 비정하고 있다.
작은 화산섬으로 섬 전체가 원형을 이루고 있다. 북쪽에 높이 114m의 분석구(噴石丘)인 비양봉이 솟아 있는데, 2개의 분화구가 있다. 분화구 주변에 우리나라에서 유일하게 비양나무의 자생지가 형성되어 있어 1995년 제주도특별자치도 기념물로 지정되었다. 1월 평균기온은 5.5℃, 8월 평균기온은 25.6℃, 연강수량은 1,304㎜이다.
2010년 기준으로 인구는 167명(남 82, 여 85명)이 거주하고 있으며, 세대수는 70세대이다. 취락은 섬의 동남쪽 해안에 집중되어 있다. 토지이용 현황은 논은 없고 밭 0.07㎢, 임야 0.32㎢이다. 주요 농산물로는 유채(油菜)와 고구마·보리·들깨 등이 재배되고 있다. 주산업은 어업으로 주요 어획물은 멸치·갈치·방어이다. 소라·전복·해삼 등의 양식업도 활발하다.
인근 본섬의 협재해수욕장, 협재리의 용암동굴지대, 그리고 한림항(翰林港)과의 연결이 용이하여 여름철에는 낚시꾼으로 붐빈다. 교통은 한림읍의 한림항에서 여객선이 운항된다. 교육기관으로는 한림초등학교 비양분교장이 있다.