《郡縣釋名》陜西卷上:“曰商南者,在商州之南也。”漢為商縣地。北魏景明元年(500年)析商縣地于今皂角鋪置南商縣,并于縣置萇和郡。北周天和六年(571年)之前改萇和郡為慎政郡。隋開皇初撤銷郡、縣,為上洛縣地。
金為上洛縣地。元為商州地。明成化十三年(1477年)于舊址設商南縣,十七年治今城關鎮,屬商州。1914年屬關中道。1928年直屬省。1950年5月屬商洛專區。1969年屬商洛地區。2001年屬商洛市。
1996年,商南縣面積2307平方千米,人口23.3萬人。轄4鎮33鄉:城關鎮、富水鎮、趙川鎮、試馬鎮、擋馬鄉、曹營鄉、張家崗鄉、五里鋪鄉、徐家店鄉、龍窩鄉、青山鄉、新廟鄉、湘河鄉、雙廟嶺鄉、魏家臺鄉、水溝鄉、文化坪鄉、汪家店鄉、店坊河鄉、三官廟鄉、石柱河鄉、余家棚鄉、十里坪鄉、梁家墳鄉、白魯礎鄉、太吉河鄉、柳樹灣鄉、江西溝鄉、畢家灣鄉、太子坪鄉、耀嶺河鄉、開河鄉、梁家灣鄉、清油河鄉、清泉鄉、兩岔河鄉、沙坪鄉。縣政府駐城關鎮。
1997年,撤銷趙川區、湘河區、富水區、東崗區、永青區、白玉區6個區公所的建制,撤銷五里鋪鄉、曹營鄉、張家崗鄉并入城關鎮,撤銷店坊河鄉、三官廟鄉并入趙川鎮,撤銷龍窩鄉并入富水鎮,撤銷雙廟嶺鄉、湘河鄉合并設立湘河鎮,撤銷柳樹灣鄉、徐家店鄉合并設立過風樓鎮,撤銷梁家灣鄉、開河鄉合并設立梁家灣鎮,撤銷太吉河鄉、太子坪鄉合并設立太吉河鎮,撤銷汪家店鄉設立白浪鎮,撤銷梁家墳鄉并入石柱河鄉,撤銷余家棚鄉并入十里坪鄉,撤銷文化坪鄉并入魏家臺鄉,撤銷耀嶺河鄉并入水溝鄉,撤銷新廟鄉并入青山鄉,撤銷沙坪鄉并入兩岔河鄉,撤銷江西溝鄉并入畢家坪鄉。調整后,商南縣轄9個鎮、11個鄉。
2000年第五次人口普查,全縣常住總人口227636人,其中:城關鎮43310人,富水鎮21979人,湘河鎮13031人,白浪鎮6924人,趙川鎮12733人,粱家灣鎮9095人,太吉河鎮7445人,過風樓鎮14804人,試馬鎮12678人,青山鄉11513人,魏家臺鄉6736人,十里坪鄉6562人,白魯礎鄉6353人,石柱河鄉6872人,水溝鄉7410人,畢家灣鄉8589人,黨馬鄉11812人,清泉鄉6424人,清油河鄉8454人,兩岔河鄉4912人。
2001年,撤銷十里坪鄉、石柱河鄉設立十里坪鎮,撤銷畢家坪鄉并入太吉河鎮,撤銷清油河鄉、兩岔河鄉設立清油河鎮,撤銷清泉鄉并入試馬鎮。調整后,商南縣轄11個鎮、5個鄉:城關鎮、富水鎮、湘河鎮、白浪鎮、趙川鎮、梁家灣鎮、太吉河鎮、過風樓鎮、試馬鎮、清油河鎮、十里坪鎮、青山鄉、魏家臺鄉、白魯礎鄉、水溝鄉、黨馬鄉。
2010年第六次人口普查,商南縣常住總人口221569人,其中:城關鎮55837人,富水鎮21753人,湘河鎮11165人,白浪鎮6228人,趙川鎮11700人,梁家灣鎮7702人,太吉河鎮15458人,過風樓鎮13443人,試馬鎮15310人,清油河鎮11657人,十里坪鎮11487人,青山鄉10153人,魏家臺鄉5780人,白魯礎鄉5535人,水溝鄉6735人,黨馬鄉11626人。
2011年,撤銷黨馬鄉并入城關鎮,撤銷白魯礎鄉并入十里坪鎮,撤銷梁家灣鎮、太吉河鎮合并設立金絲峽鎮,撤銷青山鄉設立青山鎮,撤銷水溝鄉設立水溝鎮,撤銷魏家臺鄉設立魏家臺鎮。調整后,商南縣轄13個鎮:城關鎮、富水鎮、湘河鎮、白浪鎮、趙川鎮、金絲峽鎮、過風樓鎮、試馬鎮、清油河鎮、十里坪鎮、青山鎮、魏家臺鎮、水溝鎮。
2012年末,商南縣面積2313.8平方千米,戶籍人口243699人,常住人口22.18萬人。2013年末,商南縣轄13個鎮,共有3個社區、164個行政村,縣政府駐城關鎮。
根據陜民發[2014]57號、陜民發[2015]9號、商政民發[2015]15號文件,撤銷城關鎮,設立城關街道,街道辦事處駐長新路社區;撤銷白浪鎮,并入湘河鎮,鎮政府駐湘河村;撤銷魏家臺鎮,并入趙川鎮,鎮政府駐前川村;撤銷水溝鎮,并入過風樓鎮,鎮政府駐徐家店村;在原白浪鎮、魏家臺鎮、水溝鎮政府所在地分別設立便民服務中心;全縣撤并44個村,村改居委會19個,保留101個村、23個社區。調整后,商南縣轄城關1個街道和清油河、試馬、金絲峽、十里坪、趙川、富水、湘河、過風樓、青山9個鎮,共有101個行政村、23個社區。