백제 때 지명은 두부지(豆夫只)이었고, 757년(경덕왕 16) 동복으로 개칭되어 무주도독부 관내 곡성군의 영현이 되었다. 고려 초에는 보성군의 임내였다가 뒤에 승려 조염(祖琰)의 고향이라 하여 감무관(監務官)을 두었다.
1394년(태조 3) 화순감무를 겸하였고, 1405년(태종 5) 화순현에 병합되어 1407년 복순(福順)으로 개칭되었다가 1416년 다시 분리되었다. 1895년(고종 32) 군이 되었으며, 1914년 행정구역 개편 때 동복면ㆍ서면ㆍ남면ㆍ북면이 병합되었다.
고려 때 동복을 옹성(瓮城)이라 하였는데, 이는 성문을 지키기 위하여 성문 밖에 원형이나 방형으로 쌓은 성을 말하는 바, 동복에는 철옹산성(鐵瓮山城)이 있어서 이 지명이 나왔다. 옹성 아래의 적벽강(赤壁江)은 이 지역에서 가장 아름다운 곳으로 알려져 있다.