Михаил Кулагин родился 4 августа 1994 года в Москве. Баскетболом начал заниматься в СДЮСШОР №71 «Тимирязевская» под руководством нынешнего ассистента тренера «Нижнего Новгорода» — Алексея Валерьевича Жукова. С ним же работал в юниорской команде ЦСКА и завоевал титул чемпиона Первенства ДЮБЛ.
В 2010 году Михаил присоединился к системе клуба «Триумф» (Люберцы), в котором выступал до 2014 года и прошел путь от игрока команды ДЮБЛ до основы, выступавшей тогда в Единой Лиге ВТБ.
В чезоне 2014-2015 вошел в состав экспериментальной сборной «Россия», а в 2015-м подписал пятилетний контракт с московским ЦСКА.
С 2015 по 2020 гг. защитник дважды становился чемпионом Евролиги и четырежды Единой Лиги ВТБ. Параллельно Михаил выступал за молодежную команду ЦСКА — в 2016-м он стал чемпионом Единой молодежной Лиги ВТБ и был признан MVP «Финала Восьми».
Сезон 2020-2021 Кулагин провел в красноярском «Енисее», где стал одним из лидеров коллектива под руководством Дражена Анзуловича.
В 2018 и 2021 году Кулагин принимал участие в Матчах Всех Звезд Единой Лиги ВТБ.