Михаил Матвеев родился 6 мая 1914 года (по другим данным — в 1916 году) в деревне Жабны (ныне входит в состав Фировского сельского поселения Фировского района Тверской области) в крестьянской семье.
Окончил школу фабрично-заводского ученичества. Работал на Ленинградском заводе «Красный ударник». Обучался в ленинградском аэроклубе, увлекался парашютным спортом. В 1936 году переехал в Москву, окончил Центральную парашютную школу ОСОАВИАХИМа, работал пилотом-инструктором в Украинской ССР, затем в Торжке. С 1940 года работал инструктором в аэроклубе города Кимры.
В Рабоче-крестьянской Красной армии с августа 1942 года. Служил командиром звена в 1-й школе первоначального обучения пилотов ВВС ВМФ СССР в Куйбышеве.
В 1943 году Матвеев окончил курсы по подготовке командиров звеньев ВВС ВМФ СССР при Ейском военно-морском авиационном училище (действовали в эвакуации в Куйбышевской области).
В начале ноября 1943 года прибыл на Балтику в состав 7-го гвардейского штурмового авиаполка. На отлично закончил самостоятельную тренировку на самолёте Ил-2. Первые два боевых вылета Матвеев совершил 7 ноября 1943 года, после третьего вылета ему вручили знак «Гвардия». В 1944 году вступил в ВКП(б).
Матвеев отличился в январских боях 1944 года по прорыву блокады Ленинграда. После одного из вылетов вернулся на базу на повреждённом штурмовике. Пока его машину вводили в строй, вылетал в бой на «Иле» раненого однополчанина. Успешно выполнил 10 боевых заданий. 18 января блокада была прорвана, 28 января Матвеев был награждён орденом Красного Знамени.
В конце февраля 1944 года Матвеев в числе 12 штурмовиков совершил налёт на немецкую воздушную базу. Первый удар лётчики нанесли по самолётам в западной части базы. Сразу же были уничтожены несколько Ю-88, стоявших в готовности с бомбовым грузом. Один из «юнкерсов» поджёг Матвеев. Следующий удар был нанесён по восточной стороне лётного поля, где находилось более 20 самолётов противника, начался пожар. Попытки немецких ФВ-190 и Ме-109 взлететь были пресечены истребителями сопровождения. После этого штурмовики пошли в третью атаку на тщательно замаскированную отдельную группу самолётов. В результате вылета было уничтожено и выведено 18 «юнкерсов».
Весной 1944 года Матвеев в одном из полётов, преодолев заградительный огонь, потопил немецкий транспорт. В другом бою в Финском заливе Матвеев лично уничтожил сторожевой катер, а в другой раз нанёс удар по железнодорожному эшелону, стоявшему под разгрузкой боеприпасов. В течение нескольких часов на станции раздавались мощные взрывы. К концу февраля выполнил 23 боевых заданий командования. 23 марта был награждён вторым орденом Красного Знамени.
23 марта 1944 года в Финском заливе был обнаружен немецкий караван — 2 транспорта, 4 сторожевых корабля, 9 сторожевых катеров. Советские лётчики немедленно поднялись в воздух. После нанесения первого удара один из кораблей загорелся. Группа Матвеева нанесла второй удар по сторожевым кораблям, потопив один из них. В этом же бою один из ведомых Матвеева майор Виктор Каштанкин направил свой подбитый самолёт на один из кораблей и врезался в него. В результате боя Матвеевым и другими штурмовиками было уничтожено 5 вражеских кораблей.
Вскоре Матвеев был назначен командиром эскадрильи, под его командованием ставшей лучшей в полку. В первом же бою в этом качестве его Ил-2 начали преследовать несколько самолётов противника. Матвеев искусно довернул самолёт, а стрелок Шебилкин открыл огонь по немецкому ФВ-190 и подбил его. Вскоре экипаж Матвеева сбил 3 «фоккера» в бою над караваном судов противника. Успешно выполнил 32 боевых задания командования. 30 апреля был награждён третьим орденом Красного Знамени.
19 мая 1944 года советская авиация провела сразу две операции: нанесла удар по вражескому аэродрому и атаковала крупные морские силы немцев. Пока советские истребители блокировали аэродром, штурмовики атаковали корабли. Матвеев сбросил бомбы на баржи противника с высоты. В ходе вылета лётчик и его ведомые пустили ко дну две быстроходные десантные баржи с личным составом и повредили сторожевой корабль.
Проявил себя Матвеев и в ходе Выборгской операции. В середине июня 1944 года, лишь за один день, лётчики-балтийцы разрушили 18 дзотов, уничтожили 2 танка, 2 миномётные батареи, зенитную батарею, 7 пулемётных точек. В одном из боёв им была атакована группа финских тральщиков.
23 июля 1944 года Матвеев поджёг немецкий корабль. В тот же день командир 7-го гвардейского штурмового полка Алексей Мазуренко и ведущие групп штурмовиков, в том числе и Матвеев, провели командирский облёт большого участка фронта для выявления огневых средств противника на направлении предстоящего утром 24 июля наступления.
Как отмечено в представлении к званию Героя Советского Союза от 10 июля 1944 года, составленном Мазуренко, Матвеев прекрасно владел самолётом Ил-2, одним из первых овладел «новой тактикой нанесения комбинированных бомбоштурмовых ударов по кораблям противника по методу топмачтового бомбометания» (метод, когда бомбы на корабль сбрасывались самолётом с высоты корабельных мач), в день совершал по 4-5 боевых вылетов.
24 июля 1944 года лётчики, возглавляемые Матвеевым, нанесли мощный удар по узлу сопротивления противника. Первая атака Матвеева вызвала замешательство на шоссе, по которому проходила немецкая автоколонна. Вторым ударом, нанесённым с малой высоты, было уничтожено 6 автомашин и до 100 солдат и офицеров противника. В ходе третьей атаки самолёт Матвеева был подбит немецкой зенитной артиллерией и врезался в землю. Это был его 98-й боевой вылет.
Указом Президиума Верховного Совета СССР от 19 августа 1944 года за образцовое выполнение боевых задач и героизм, проявленный при их выполнении, М. А. Матвееву было присвоено звание Героя Советского Союза (посмертно).