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