단계현(丹溪縣)과 강성현(江城縣)을 합쳐 이루어진 현이다. 강성현은 신라의 궐지현(闕支縣)인데 경덕왕이 궐성군(闕城郡)으로 고쳤다. 고려시대에는 강성현이라 고쳤고 뒤에 군으로 승격시켰다. 1018년(현종 9) 진주(晉州)에 예속시켰다가 공양왕 때 감무(監務)를 두었다.
조선 정종 때 해중도(海中島)인 명진현(溟珍縣)이 왜군을 피하여 육지로 나와 진주 임내(任內)인 영선현(永善縣)에 피난생활을 한 관계로 강성현에 명진현을 합쳐 새로 진성현(珍城縣)을 편성하였다. 그러나 그 뒤 얼마 가지 않아 세종 때 명진현을 거제도로 보냈다.
단계현은 원래 신라의 적촌현(赤村縣)인데 경덕왕이 단읍(丹邑)이라 개칭하여 궐성군의 영현(領縣)을 삼았고, 고려시대에 단계라 고쳐 현종 때 합주 관할에 두었다가, 공양왕 때 강성(江城)에 환속시켰다.
조선 세종 때 두 현의 이름에서 한자씩 따서 단성현을 만들었다. 1599년(선조 32) 산음(山陰)에 속하였다가 1613년(광해군 5) 복구되어 치소를 강성으로 옮겼다. 그러나 1731년(영조 7) 다시 내산(來山)으로 옮겼다.
1895년(고종 32) 23부제 실시 때 진주부 관할의 단성군이 되었고, 이듬해 13도제 실시 때 경상남도의 4등군이 되었다. 1914년 행정구역 개편 때 산청군에 병합되어 단성ㆍ도산(都山)ㆍ생비량(生比良)ㆍ신등(新登)ㆍ북동(北洞)의 5면으로 되었다.