동경 126°12′, 북위 34°36′에 위치한다. 목포에서 남서쪽으로 24㎞, 진도에서 북동쪽으로 4.2㎞, 장산도에서 남동쪽으로 1㎞ 지점에 있다. 면적은 1.08㎢이고, 해안선 길이는 7.5㎞이다. 북쪽에 위치한 내항도와 제방으로 연결되어 있다.
원래 진도군 조도면 마진도리에 속하였으나 1963년 무안군 장산면에 편입되었다. 1969년에 신안군이 무안군에서 분군되면서 신안군 장산면 마진도리가 되었다. 지명은 산의 형상이 말의 모양을 하고 있어 마진이라고 한다. 또 섬의 형태와 마을 뒷산의 바위가 말처럼 생겨 마진도라 부르게 되었다고 하며, 인근 섬들과 왕래할 수 있는 나루터가 있어 ‘마진’이라 하였다고도 한다. 말바우 전설이 전해 내려오고 있다.
지질은 산성화산암류가 대부분이다. 긴 2개의 구릉지(최고 높이 74m)가 연결된 섬으로 동서 길이는 2㎞, 평균 너비는 200m이다. 북쪽에 비하여 남쪽이 비교적 저평한 지형을 이룬다. 북동쪽과 북서쪽 해안을 제외하고는 사빈과 간석지가 널리 분포한다. 1월 평균기온은 1℃, 8월 평균기온은 26.5℃, 연강수량은 890㎜이다.
2009년 기준으로 인구는 82명(남 43명, 여 39명)이고, 세대수는 36세대이다. 취락과 농경지는 북쪽 해안 중앙부에 위치한 마진마을에 집중되어 있다. 1635년(인조 13) 무렵 김해김씨가 나주에서 난을 피해 이곳에 정착하였다고 한다.
토지이용 현황은 논 0.05㎢, 밭 0.26㎢, 임야 0.65㎢이다. 주산업은 농어 겸업이다. 주요 농산물은 감자와 고구마이고, 보리·콩·두류·마늘·참깨 등이 생산된다. 수산물은 장어·병어·톳 등이 주로 어획되며, 김과 미역 양식이 행하여지고 있다. 장산동초등학교 마산분교장이 있었으나, 2007년 3월에 폐교되었다.