清代屬榆林縣鎮城和保寧堡口外地域。
1949年6月前,屬河西鄉。
1949年6月后,隸屬榆林縣河西區,曾設可可蓋、補兔寨鄉。
1950年,設馬合區、八區、十一區。
1958年9月,撤區改設馬合公社。
1960年1月,并入馬合農場。
1969年1月,復設馬合公社。
1984年7月,改設為鄉。
同年9月,劃出可可蓋、昌汗峁、腦冒海則等7個行政村,設可可蓋鄉。
1997年11月,改設馬合鎮。
2002年5月,可可蓋鄉腦冒海則村并入。