元代时期,属播州宣慰司。
明、清时期,属清平县。
民国二年(1913年),为炉山县第二区第二分区。
民国二十一年(1932年),置凯棠镇和白岩、黄泥、凯旋、凯哨等4乡。
民国二十五年(1936年),撤乡镇,改为凯棠联保。
民国三十年(1941年),撤联保,置凯棠乡。
1953年,凯棠乡析为凯棠、凯哨、白水洞、南开4乡。
1958年,设前进公;同年12月,实行一区一社,属旁海公社。
1961年,撤一区一社,置凯棠公社和白水洞公社。
1966年,白水洞公社并入凯棠公社。
1984年5月,凯棠公社改乡。
1992年1月,建镇并乡撤区,凯棠乡保留,所辖区域不变。
2016年1月29日,撤销凯棠乡建制,设凯棠镇。