Происходил из семьи боярина князя Ивана Васильевича Булгака-Патрикеева. Прозвище «Голица» Михаил Иванович получил за привычку постоянно носить на одной руке латную перчатку.
На службе Михаил Иванович упоминается 13 февраля 1500 года, когда он находился в «поезде» князя Василия Даниловича Холмского во время женитьбы князя на дочери Ивана III, княжне Софье.
В 1512 году князь Михаил Иванович участвовал в походе против Крымского хана.
С 1513 года князь служил воеводой на разных театрах русско-литовской войны 1512-1522 годов.
В 1514 году вместе с князем Михаилом Глинским послан на Оршанское направление во главе отряда из новгородских и псковских детей боярских. После измены князя Глинского именно князь Михаил Иванович активными действиями смог арестовать князя Глинского, когда последний попытался бежать.
В битве под Оршей князь Михаил Иванович командовал полком правой руки. После битвы попал в плен и отправлен в Вильну. В плену князь Михаил Иванович провёл 37 лет. Всё это время велись переговоры о его освобождении. В 1549 году царь Иван IV предлагал за освобождение князя 1000 рублей, но переговоры закончились без результата. Князь был отпущен на свободу только в 1551 году и 27 февраля прибыл в Москву.
Во время Казанского похода князь Михаил Иванович входил в состав правительства, которое управляло Москвой на период отсутствия государя.
Под конец жизни князь Михаил Иванович принял постриг под именем Ионы и скончался до августа 1558 года в Троице-Сергиевой лавре. Погребён в Троицком соборе. Имя князя Михаила Ивановича внесено в Синодик Успенского собора.