夏禹属梁州城。
周朝属于雍。
秦始皇二十六年(前221)属西南夷夜郎部。
西汉元封五年(前106)属犍为郡朱提县地。
西晋太康二年(281)属朱提郡南广县。
南朝属宁州朱提郡河阳县。
隋开皇三年(583)郡改州统县属剑南道开边县地。
唐南诏时属爨部地。
宋属乌蒙部。
元属乌蒙路宣慰司。
明属四川府地。
清雍正六年(1728)置永善县,属云南省昭通府,县城设于米贴(今黄华镇境内),八年(1730),米贴县城被毁,县城迁至莲峰。
清光绪三十四年(1908)划出北面的副官村另设靖江县(今绥江、水富两县)。
1919年设井桧分县。
1946年取消分县。
1950年,属昭通地区;1950年4月,永善解放属昭通专区。
1951年,县城由莲峰迁至井底(现溪洛渡街道)。
1966年5月13日,划出桧溪区共14公社归绥江县,1969年4月23日,复归永善。
1970年昭通专区改为昭通地区,永善县属昭通地区。
2001年,昭通地区改昭通市,永善县属昭通市,至今。