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