春秋战国时为代地。
秦置班区县,属代郡。
西汉置班氏县,新莽改为班副县,东汉复为班区县,东汉末年县废,北魏时为畿内之地,隋属马邑郡云内县、唐为云中县地,五代因之。
辽代始置怀仁县。
因耶律阿保机与李克用会于云州东城,易袍马约为兄弟,有怀想仁人之语,又与《论语》“怀德仁里”语符之,故取名怀仁。
属西京道大同府。
金贞祐二年(1214)五月升为云州,属西京路大同府。
明清均为怀仁县,属大同府。
抗日战争和解放战争期间,中国共产党先后建立分属晋察冀、晋绥边区管辖的东、西怀仁县民主政府。
1948年5月26日,怀仁全境解放,属晋绥边区专署。
新中国成立后,属察哈尔省雁北专署。
1952年12月归山西省雁北专区。
1954年7月,大同县、怀仁县合并为大仁县。
1958年9月,大仁县撤销,划归大同市,称大同市郊区。
1960年1月,置怀仁区,归大同市管辖。
1964年12月,恢复怀仁县建制,归雁北地区管辖。
1993年7月10日,划归朔州市管辖。
2018年2月,经国务院批准,撤销怀仁县,设立县级怀仁市,以原怀仁县的行政区域为怀仁市的行政区域。
怀仁市由山西省直辖,朔州市代管。