夏禹屬梁州城。
周朝屬于雍。
秦始皇二十六年(前221)屬西南夷夜郎部。
西漢元封五年(前106)屬犍為郡朱提縣地。
西晉太康二年(281)屬朱提郡南廣縣。
南朝屬寧州朱提郡河陽(yáng)縣。
隋開皇三年(583)郡改州統(tǒng)縣屬劍南道開邊縣地。
唐南詔時(shí)屬爨部地。
宋屬烏蒙部。
元屬烏蒙路宣慰司。
明屬四川府地。
清雍正六年(1728)置永善縣,屬云南省昭通府,縣城設(shè)于米貼(今黃華鎮(zhèn)境內(nèi)),八年(1730),米貼縣城被毀,縣城遷至蓮峰。
清光緒三十四年(1908)劃出北面的副官村另設(shè)靖江縣(今綏江、水富兩縣)。
1919年設(shè)井檜分縣。
1946年取消分縣。
1950年,屬昭通地區(qū);1950年4月,永善解放屬昭通專區(qū)。
1951年,縣城由蓮峰遷至井底(現(xiàn)溪洛渡街道)。
1966年5月13日,劃出檜溪區(qū)共14公社歸綏江縣,1969年4月23日,復(fù)歸永善。
1970年昭通專區(qū)改為昭通地區(qū),永善縣屬昭通地區(qū)。
2001年,昭通地區(qū)改昭通市,永善縣屬昭通市,至今。