Михаил Васильевич Васильев родился 9 февраля 1909 года в деревне Никольское (ныне — Новодугинский район Смоленской области). До призыва в армию работал в колхозе, затем руководил сельсоветом. В мае 1941 года Васильев был призван на службу в Рабоче-крестьянскую Красную Армию. С августа того же года — на фронтах Великой Отечественной войны. В боях два раза был ранен и ещё один раз контужен.
К весне 1945 года старший сержант Михаил Васильев был командиром миномётного расчёта 469-го стрелкового полка.
7 марта 1945 года под городом Генберг вместе со своим расчётом Васильев уничтожил 2 артиллерийских орудия и 1 автомобиль, принял активное участие в пленении группы из 30 солдат и офицеров противника. 23 марта 1945 года был награждён орденом Славы 3-й степени.
16 апреля 1945 года в районе населённого пункта Гросс-Нойендорф в 18 километрах к востоку от Врицена расчёт Васильева уничтожил 4 огневые точки и более 10 солдат и офицеров противника, 1 БТР, 1 САУ. 13 мая 1945 года был награждён орденом Славы 2-й степени.
29 апреля 1945 года Васильев одним из первых переправился через Шпрее и корректировал огонь миномётов, что позволило уничтожить 10 огневых точек и около взвода вражеских солдат. 9 июня 1945 года он был награждён вторым орденом Славы 2-й степени. Указом Президиума Верховного Совета СССР от 19 августа 1955 года в порядке перенаграждения Васильеву этот орден был заменён на орден Славы 1-й степени за номером 2338.
Вернулся в родную деревню, работал председателем Капустинского сельского совета.
Умер 23 мая 1970 года, похоронен у Преображенской церкви в селе Липецы Новодугинского района Смоленской области.