Вопрос о том, из какой княжеской династии происходил Дмитрий — Рюриковичей или Гедиминовичей, остаётся открытым.Многие исследователи считали, что Дмитрий принадлежал к династии Рюриковичей. Однако в конце XIX века П. Н. Петров и А. В. Экземплярский выдвинули гипотезу, по которой Дмитрий происходил из династии Гедиминовичей. В качестве отца Дмитрия указывался один из сыновей Гедимина по имени Кориат, в крещении Михаил. Эта точка зрения была поддержана многими исследователями, в частности Г. В. Вернадским и В. А. Кучкиным. Существует также версия, что Дмитрий был сыном другого Гедиминовича — волынского князя Михаила Любартовича, внука Гедимина. Кроме того, в статье о Дмитрии в «Русском биографическом словаре» Дмитрий отождествляется не только с Дмитрием Кориатовичем, но и с Дмитрием Алибуртовичем.
Ранние годы Дмитрия источниками не освещаются. Автор статьи в «Русском биографическом словаре» упоминает, что Дмитрий с 1359 г. оказался на службе у нижегородского князя Дмитрия Константиновича, который сделал его тысяцким, а уже от него перешёл на службу к Дмитрию Донскому. Это известие восходит к местной грамоте Дмитрия Константиновича Суздальского, которую приводит С. М. Соловьёв.
Точно неизвестно, когда именно Дмитрий Михайлович появился в Москве.В 1370-е годы Дмитрий Михайлович был на службе в Москве воеводой, и в декабре 1371 г. с войском разбил у села Скорнищева под Рязанью великого князя рязанского Олега Ивановича и посадил на рязянский стол пронского князя Владимира Ярославича, следовавшего в русле московской политики.
В 1372 году Дмитрий Михайлович указан первым среди бояр, которые во время договора с Ольгердом и его союзниками из Смоленска и Твери целовали крест как представители Дмитрия Донского и его двоюродного брата, серпуховского князя Владимира Андреевича.
В 1376-1377 гг. он руководил совместным с нижегородским князем Дмитрием Константиновичем Старшим походом русского войска против булгар волжско-камских, заставив платить последних дань Москве и Нижнему Новгороду.
9 декабря 1379 года Дмитрий Михайлович вместе с князьями Владимиром Андреевичем Серпуховским и Андреем Ольгердовичем отправился в поход в Брянское княжество. В итоге были захвачены города Трубчевск и Стародуб, а также ряд других владений. Одним из результатов этой военной кампании стало то, что правивший до этого в Трубчевске князь Дмитрий Ольгердович перешёл со своим двором на московскую службу
Одним из самых известных фактов биографии Дмитрия Михайловича является его участие в Куликовской битве 8 сентября 1380 года.Дмитрий Михайлович отличился в Куликовской битве, где командовал совместно с князем Владимиром Андреевичем Серпуховским засадным полком. Атака Засадного полка оказалась очень успешной и своевременной — она была нанесена с тылу, и татаро-монголы её не ожидали. Их конница была загнана в реку и уничтожена, остальные в ужасе бежали. Эта атака решила исход битвы и привела к победе русских войск.
После боя Дмитрий Донской сказал Дмитрию Михайловичу:
«Въистину, Дмитрие, не ложь твои примѣты, подобает ти всегда въеводою быти».
Возвратившаяся с победой армия была торжественно встречена в Коломне. Там в честь победы, по мнению ряда исследователей, Дмитрий Михайлович основал Бобренев монастырь. Сведения об основании монастыря в 1380-е годы подтверждаются археологическим изучением строений монастыря. Возможно, что монастырь был семейным — потомки Дмитрия имели земельные владения в этих местах.После Куликовской битвы биографических сведений о Дмитрии Михайловиче очень мало. В источниках он упоминается только однажды: между 13 апреля и 16 мая 1389 года он как первый боярин подписался на духовной Дмитрия Донского. После этого сведения о нём исчезают.
Считается, что Дмитрий Михайлович погиб в 1399 г. в печально известной битве литовско-русских войск под предводительством великого князя литовского Витовта Кейстутьевича с татарами на реке Ворскла.
Но далеко не все согласны с этой версией. В. Л. Янин на основании родословцев Волынских и синодика Клопского монастыря (ок. 1650 года) постарался восстановить последующие факты биографии Дмитрия. В родословце Волынских рассказывается о трагедии, произошедшей в семье Дмитрия: его сын, родившийся от брака с сестрой Дмитрия Донского, в пятнадцатилетнем возрасте упал с коня и разбился насмерть. По реконструкции Янина, под впечатлением от этой трагедии Дмитрий и его жена ушли из мирской жизни. Янин считает, что монашеским именем Дмитрия стало Максим и что он умер не ранее начала XV века. Эта реконструкция встретила доброжелательные отзывы в российской историографии.
Некоторые источники сообщают, что Дмитрий был бездетен, однако это противоречит сведениям родословных.
Согласно родословным, Дмитрий был женат дважды. Имя первой жены неизвестно, на ней Дмитрий женился ещё на Волыни. От этого брака родилось двое сыновей:
Борис Волынский, в некоторых родословных указан боярином, но документального упоминания о его боярстве нет. Борис князем не писался и стал родоначальником дворянского рода Волынских.
Давыд Вороной, в некоторых родословных указан боярином, но документального упоминания о его боярстве нет. Давыд князем не писался и стал родоначальником дворянского рода Вороных-Волынских.Уже после приезда в Москву Дмитрий Михайлович женился на сестре великого князя Владимирского Дмитрия Донского. Согласно родословным, её звали Анна. Точно не установлено, когда это произошло. Р. Г. Скрынников предположил, что это произошло после 1379 года, но А. В. Кузьмин относит событие на более раннюю дату. Достоверно известно об одном сыне от этого брака:
Василий, согласно родословным в пятнадцатилетнем возрасте упал с коня и разбился насмерть.В. Л. Янин на основании анализа синодика Клопского монастыря выдвинул гипотезу, что сыном Дмитрия был святой Михаил Клопский. Эту гипотезу постарался уточнить А. В. Кузьмин, по мнению которого Михаил Клопский скорее был внуком Дмитрия. Отца Михаила Клопского звали Максим, по мнению Кузьмина он мог быть сыном Дмитрия, не попавшим в родословцы, поскольку род от него и его сына не пошёл.