Родился в Челябинске в татарской семье. Отец, Ахмет Гареев (1881 г. рожд.), — рабочий. Мать, Рахима Гареева (1892 г. рожд.), — домохозяйка. В 1939 году добровольцем ушёл в РККА. Окончил Ташкентское Краснознаменное пехотное училище имени В. И. Ленина в 1941 году. В 1941—1942 года командовал взводом в Среднеазиатском военном округе, учился на Высших стрелково-тактических курсах усовершенствования командного состава пехоты «Выстрел».
С декабря 1942 года — участник Великой Отечественной войны. Воевал на Западном и 3-м Белорусском фронтах. Был заместителем командира стрелкового батальона, помощником, заместителем начальника и начальником оперативной части штаба стрелковой бригады, с июня 1944 года — офицер штаба 45-го стрелкового корпуса. В 1942 году в боях под Ржевом был ранен, в 1944 году снова был ранен в голову.
В феврале 1945 года после выхода из госпиталя направлен на Дальний Восток, старшим офицером оперативного отдела штаба 5-й армии. В её составе на 1-м Дальневосточном фронте сражался в ходе советско-японской войны в августе 1945 г.
После войны до 1947 года продолжал службу в штабе 5-й армии в Дальневосточном военом округе. В 1950 году окончил Военную академию имени Фрунзе. В 1950—1957 годах — начальник штаба полка, старший офицер оперативного управления штаба Белорусского военного округа, начальник штаба дивизии.
В 1959 году окончил Военную академию Генерального штаба. С 1959 года — заместитель командира дивизии, командир мотострелковой и танковой дивизий, начальником штаба общевойсковой армии в Белорусском военном округе.
В 1970—1971 годах — Главный военный советник в Объединённой Арабской Республике. С 1971 года — начальник штаба Уральского военного округа. С 1974 года — начальник Военно-научного управления Генерального штаба, заместитель начальника Главного оперативного управления Генерального штаба, с 1984 года — заместитель начальника Генерального штаба Вооружённых Сил СССР.
С 1989 года был Главным военным советником в Афганистане после вывода оттуда ограниченного контингента советских войск. Играл большую роль в планировании боевых операций правительственных войск президента Наджибуллы. Моджахеды охотились за М. Гареевым, он был тяжело ранен.
С 1990 года занимал пост Военного советника — инспектора Группы генеральных инспекторов Министерства обороны СССР. С 1992 года — в отставке.
Активно стал заниматься военно-научной работой еще в 60-70-е годы. Автор свыше 100 научных трудов, свыше 300 статей и публикаций в сборниках, журналах, газетах. Написал книги «Тактические учения и маневры», «М. В. Фрунзе — военный теоретик», «Общевойсковые учения», «Неоднозначные страницы войны», «Моя последняя война».
После создания в феврале 1995 года Академии военных наук, неправительственной исследовательской организации, был избран её президентом. Много занимается изучением вопросов истории Великой Отечественной войны. Активно участвует в научных дискуссиях, выступает против фальсификации истории войны. Считает, что стремление оспорить победу СССР над фашизмом тесно связано с пропагандистской кампанией против современной России. В редактируемых Гареевым научных сборниках были введены в оборот тысячи ранее неизвестных документов о войне. Выступал в передаче «Директива номер 1 — Война».
Лекцией М. А. Гареева «Россия в войнах XX века» 25 марта 2004 года был открыт проект публичных лекций Полит.ру.
3 марта 2011 года подписал Обращение представителей общественности против информационного подрыва доверия к судебной системе Российской Федерации.
Награждён орденом Ленина, четырьмя орденами Красного Знамени, орденом Александра Невского, двумя орденами Отечественной войны I степени, орденом Трудового Красного Знамени, тремя орденами Красной Звезды, орденами «За службу Родине в Вооружённых Силах СССР» II и III степени, медалями, а также иностранными орденами и медалями.