전북 진안군 백운면의 팔공산 자락의 옥녀봉 아래 데미샘에서 시작한다. 길이는 223 km로 소백산맥과 노령산맥 사이를 굽이쳐 흐르면서, 보성강과 여러 지류와 합쳐 광양만으로 흘러든다. 대한민국 5대강 중 수질이 가장 깨끗한 강으로 알려져 있다.
전남 광양시 다압면 도사리 섬진마을(일명 매화마을)에 위치한 섬진나루터가 있다. 이 두꺼비나루에서 강의 이름이 유래한다.