西漢元鼎六年(前111)建越崔郡,郡下設會無等縣,寧南屬會無縣轄。至寧南建縣的兩千年間,其歷史沿革隨會理(古稱會無)縣演變。1931年建寧南縣。以地當寧遠府之南而得名。
1996年,寧南縣面積1675平方千米,人口約16萬人,以漢族為多,其中彝族占22.3%,還有布依、藏、回等少數民族。轄5個鎮、19個鄉:披砂鎮、松新鎮、竹壽鎮、華彈鎮、六城鎮、景星鄉、俱樂鄉、新村鄉、幸福鄉、海子鄉、六鐵鄉、新建鄉、稻谷鄉、新華鄉、石梨鄉、松林鄉、杉樹鄉、梁子鄉、大同鄉、西瑤鄉、紅星鄉、騎騾溝鄉、倮格鄉、跑馬鄉。縣政府駐披沙鎮。
2000年第五次人口普查,寧南縣常住總人口169962人,其中:披砂鎮28421人,松新鎮10134人,竹壽鎮6222人,華彈鎮13933人,六城鎮6361人,葫蘆口鎮4682人,景星鄉11288人,俱樂鄉4435人,新村鄉5176人,幸福鄉6312人,海子鄉3764人,六鐵鄉4833人,新建鄉3284人,稻谷鄉2700人,新華鄉6692人,石梨鄉7227人,松林鄉5916人,杉樹鄉2585人,梁子鄉3508人,大同鄉5594人,西瑤鄉4863人,紅星鄉3724人,騎騾溝鄉6429人,倮格鄉5027人,跑馬鄉6852人。
2003年5月21日,四川省人民政府(川府民政[2003]15號)批復同意寧南縣六城鎮更名為白鶴灘鎮。
2004年,寧南縣轄6個鎮(披砂、松新、竹壽、華彈、葫蘆口、白鶴灘)、19個鄉(景星、俱樂、新村、幸福、新華、松林、石梨、大同、西瑤、紅星、倮洛、跑馬、稻谷、六鐵、海子、新建、杉樹、騎騾溝、梁子)。
2010年第六次人口普查,寧南縣常住總人口170673人,其中:披砂鎮30918人,松新鎮9435人,竹壽鎮6054人,華彈鎮11055人,白鶴灘鎮7080人,葫蘆口鎮5685人,景星鄉10734人,俱樂鄉3567人,新村鄉5001人,幸福鄉5416人,海子鄉4554人,六鐵鄉5954人,新建鄉3690人,稻谷鄉3308人,新華鄉6009人,石梨鄉6820人,松林鄉5328人,杉樹鄉3175人,梁子鄉3914人,大同鄉5034人,西瑤鄉4389人,紅星鄉3358人,騎騾溝鄉6926人,倮格鄉5293人,跑馬鄉7976人。