Михаил Волков родился 21 ноября 1921 года в деревне Морская Заимка (ныне — Партизанский район Красноярского края) в крестьянской семье. После окончания начальной школы работал в колхозе, был прицепщиком, затем трактористом. С 1939 года учился в школе техников железнодорожного транспорта. В 1942 году Волков был призван на службу в Рабоче-крестьянскую Красную Армию. В августе того же года окончил Томское артиллерийское училище. С декабря 1942 года — на фронтах Великой Отечественной войны. Принимал участие в боях на Западном, Брянском, Калининском, 1-м Прибалтийском, 3-м Белорусском фронтах. Три раза был ранен. Участвовал в боях на Жиздре, Орловской операции, боях под Невелем, Городокской, Белорусской, Гумбинненской операциях. К июлю 1944 года гвардии старший лейтенант Михаил Волков командовал батареей 35-го гвардейского артиллерийского полка 1-й гвардейской мотострелковой дивизии 11-й гвардейской армии 3-го Белорусского фронта. Отличился во время форсирования Немана.