전라남도 남서단 영산강 하구에 위치하여 동쪽과 남쪽은 영산호 (榮山湖)에 면해 영암군을 마주하고 있으며, 서쪽은 많은 도서들로 이루어진 신안군, 북쪽은 무안군과 접하고 있다.
동경 126°17′∼126°26′, 북위 34°44′∼34°49′에 위치하며, 면적 51.67㎢, 인구 220,447명이다. 무안반도 남단에 위치한 목포시는 동쪽에 입암산(笠巖山, 121m), 서쪽에 유달산(儒達山, 228m), 북쪽에 양을산(陽乙山, 156m)·대박산(大朴山, 156m)·지적봉(芝積峰, 189m) 등으로 둘러 있고 남쪽은 영산강 하구에 면해 있다. 또한, 그 주위에 13개의 도서가 넓게 펼쳐져 있어 경치가 아름다울 뿐만 아니라 자연적으로 방파제 구실을 하여 천연적인 양항의 조건을 보인다.
시가지의 서남쪽에 병풍을 둘러놓은 듯 기암절벽이 펼쳐진 유달산은 고려시대인 1351년(충정왕 3)에 봉수대가 설치된 곳이기도 하다. 임진왜란 때 군량미가 쌓여 있는 것처럼 위장했다는 일명 노적봉 (露積峰)이 있으며, 영산강· 삼학도 (三鶴島)와 함께 이곳 사람들의 시정(詩情)을 돋우는 아름다운 경관을 갖추고 있다. 시가지 주변의 영산강 하구에는 연변·북항·대반동·백련동·갓바위해안 등의 간석지가 있다. 이들 간석지는 육상으로부터의 계속적인 퇴적과 바닷물의 유입횟수가 줄면서 정착하게 된 염생식물 덕분에 퇴적물의 집적과 간척이 용이해져 농경지·주택지·공장부지 등으로 이용되고 있다. 이 밖에도 고하도 (高下島)· 눌도 (訥島)· 달리도 (達里島) 등 6개의 유인도와 5개의 무인도를 포함하고 있다.
영산강 유역은 강수의 편의율(偏倚率 : 치우치는 정도)이 대단히 커서 매년 상습적인 한해(旱害)·홍수 등의 피해가 빈번했다. 이를 극복하기 위한 개발계획의 일환으로 영암군 삼호반도(三湖半島)와의 사이에 하구둑이 축조되어 영산강은 영산호로 변하였다.