因元为德州、昌州地,后置德昌路,乃合二州首字而命名。古为邛都(今西昌)县地,民初为西昌县辖镇,1943年改为设治局,1945年建德昌县。1959年并入西昌县后设区,1962年恢复德昌县。
1996年,德昌县面积2288.3平方千米,人口约17.4万人,以汉族为多,其中彝族占20.7%,傈僳族占0.2%。辖3个镇、20个乡:德州镇、乐跃镇、永郎镇、大山乡、大六槽乡、大湾乡、小高乡、马鞍乡、王所乡、六所乡、巴洞乡、老碾乡、阿月乡、金沙傈僳族乡、南山傈僳族乡、前山乡、茨达乡、热河乡、铁炉乡、宽裕乡、银鹿乡、麻栗乡、锦川乡。县政府驻德州镇。
2000年第五次人口普查,德昌县常住总人口188980人,其中:德州镇46588人,永郎镇9160人,乐跃镇10002人,麻栗乡7832人,阿月乡8352人,王所乡11187人,六所乡10521人,巴洞乡8802人,宽裕乡9108人,茨达乡11376人,小高乡11078人,锦川乡7475人,老碾乡6699人,大湾乡2356人,马安乡2805人,铁炉乡5244人,前山乡2802人,大山乡2653人,大六槽乡2169人,热河乡4908人,南山傈傈族乡1844人,金沙傈傈族乡2777人,银鹿乡3242人。
2004年,德昌县辖3个镇(德州、永郎、乐跃)、18个乡(阿月、前山、王所、巴洞、热河、大山、六所、铁炉、马安、大湾、麻栗、银鹿、锦川、宽裕、茨达、小高、老碾、大六槽)、2个民族乡(金沙傈僳族、南山傈僳族)。
2010年第六次人口普查,德昌县常住总人口214405人,其中:德州镇62952人,永郎镇9220人,乐跃镇10483人,麻栗乡8745人,阿月乡8751人,王所乡12310人,六所乡11194人,巴洞乡9283人,宽裕乡10190人,茨达乡12366人,小高乡11657人,锦川乡7606人,老碾乡6746人,大湾乡2459人,马安乡3104人,铁炉乡5598人,前山乡3449人,大山乡2273人,大六槽乡2357人,热河乡4895人,南山傈傈族乡1839人,金沙傈傈族乡3017人,银鹿乡3911人。
2012年,撤销麻栗乡和银鹿乡,设立麻栗镇,镇政府驻民主村麻栗场,辖原麻栗乡和银鹿乡所属行政区域。调整后,全县辖4个镇、18个乡(其中2个民族乡)。
2014年,撤销六所乡,设立六所镇,镇政府驻永兴村;撤销莰达乡,设立莰达镇,镇政府驻新胜村;撤销小高乡,设立小高镇,镇政府驻群英村;撤销阿月乡、前山乡,合并设立阿月镇,镇政府驻阿月村。调整后,德昌县辖德州、永郎、乐跃、麻栗、阿月、六所、茨达、小高8个镇和王所、巴洞、热河、大山、铁炉、马安、大湾、锦川、宽裕、老碾、大六槽、金沙傈僳族、南山傈僳族13个乡(其中2个民族乡)。
2015年,撤销王所乡、巴洞乡、宽裕乡,设立王所镇、巴洞镇、宽裕镇(川府民政[2015]18号)。调整后,德昌县辖11个镇和10个乡(其中2个民族乡)。