Sídlo bolo založené v roku 1844 ako ruská pevnosť Petrovskoje, známa aj ako Andži-Kala. V roku 1857 dostalo sídlo štatút mesta a názov Petrovsk vďaka legende, že v čase Rusko-perzských vojen (1722-1723) bol na tomto mieste tábor cára Petra I.. V roku 1861 sa začal stavať prístav a o štyri roky neskôr dorazila železnica. Po Októbrovej revolúcii obsadili mesto bielogvardejci a udržali ho až do marca 1920. Svoj súčasný názov dostalo mesto v roku 1921 na počesť dagestanského revolucionára Magomeda-Aliho Dachadajeva, ktorý mal pseudonym Маchač. Mesto sa postupne rozrástlo do dĺžky 70 km pozdĺž západného pobrežia Kaspického mora. 14. mája 1970 bolo postihnuté zemetrasením, ktoré napáchalo veľké škody.