Михаил Степанович родился в семье крестьянина села Верхняя Теча Шадринского уезда Пермской губернии в 1895 году. С отличием окончил местную школу и получил земскую стипендию для поступления в учительскую семинарию.
Через два года после начала Великой войны Михаила призвали в ряды Русской императорской армии, он был направлен на учёбу в Чугуевское военное училище, окончив его, в 1917 году в чине прапорщика был направлен на должность младшего офицера в Кременчугский пехотный полк. С марта 1917 года Михаил Степанович принимал участие в боевых действиях на Западном фронте.
После Октябрьского переворота Шумилов вступил в ряды Красной гвардии, а в апреле 1918 года добровольцем пошёл в Красную армию, примерно в то же время вступил в ряды партии большевиков.
Практически на всём протяжении Гражданской войны воевал Шумилов в составе 4-го Уральского стрелкового полка, который на первоначальном этапе войны принимал участие в боях на линии Егоршинской обороны.
В своих воспоминаниях «Боевые заметки из жизни 4-го Уральского стрелкового полка», датированные 1922-м годом, А.Н. Грязных пишет о том, как М.С. Шумилов попал в данный полк. Во время отступления полка в направлении Егоршино, конкретно на станцию Антрацит, бойцы встретили своего земляка, коменданта станции Михаила Степановича Шумилова. Тогда же бойцы попросили его возглавить одну из рот полка, и он дал своё согласие. Но воевать ему на нашей земле пришлось недолго, он был ранен в бою под деревней Ёлкино. Вот как этот случай описывает А.Н. Грязных.
«В цепь, за мною. Ура!» — слышится голос любимца 3 роты командира товарища Шумилова. С красным флагом в руке он бросается вперёд, увлекая роту. Не повезло и на этот раз 3-й роте. Товарищ Шумилов попал под пулемётный огонь и несколько пуль в бока, руки и ноги впиваются в него. «Не бегайте, держитесь вперёд» — успел ещё сказать дорогой товарищ и, облившись кровью, потерял сознание. Санитары утаскивают раненого ротного.
Бой, конечно, описан красочно, и, скорее всего, было всё совсем не так… Но, то что Шумилов был ранен в этом бою, факт достоверный. Штаб дивизии, в состав которой входил Уральский полк, находился на станции Егоршино, а затем в Алапаевске, дивизионный госпиталь находился там же.
Когда Шумилова назначили командиром батальона, доподлинно неизвестно, но по воспоминаниям бывшего командира полка И.П. Вырышева, комбатом он стал в боях под Ирбитскими вершинами. Вернулся в полк М.С. Шумилов уже только осенью 1918 года, когда полк располагался уже на Кушвинском направлении.
По официальным данным, в октябре того же года Михаил Степанович был назначен помощником командира полка, а через несколько дней он стал его командиром.
С боями он отступил до Перми и Вятки, а потом участвовал в освобождении Урала и в боях на Южном фронте. В 1919 году командовал 85-й особой стрелковой бригадой, вместе с которой форсировал Сиваш и штурмовал Перекоп, а затем, по некоторым сведениям, какое-то время командовал 253-м краснознамённым Красных орлов стрелковым полком.
После окончания войны М.С Шумилов продолжил служить в армии на должности командира батальона.
После окончания курсов старшего и высшего командно-политического состава в 1924 году Михаил Степанович был назначен на должность начальника штаба стрелкового полка, а после окончания курсов усовершенствования комсостава «Выстрел» в 1929 году был назначен на должность командира и военкома стрелкового полка, в 1933 году — на должность начальника штаба стрелковой дивизии, а в 1937 году — на должность командира стрелковой дивизии.
Позже М.С. Шумилов в должности советника при командующем группой армий Центрально-Южной зоны принимал участие в боевых действиях во время гражданской войны в Испании.
В апреле 1938 года Михаила Степановича назначили на должность командира 11-го стрелкового корпуса, который располагался в Белорусском военном округе, после чего принимал участие в освободительном походе в Западную Белоруссию в сентябре 1939 года. С началом Советско-финской войны Шумилов направлен в расположение действующей армии. В июле 1940 года 11-й стрелковый корпус был включён в состав Прибалтийского военного округа.
Когда началась Великая Отечественная война, корпус, которым командовал Шумилов, принимал участие в оборонительной операции в Прибалтике. Но вскоре корпусу пришлось отступить по направлению на Ригу и далее на Тарту. В июле корпус вёл тяжёлые оборонительные боевые действия на рубеже Пярну—Тарту. После прорыва противником линии фронта корпус отошёл к Чудскому озеру, где попал в окружение. В конце июля М.С. Шумилов вывел своих бойцов из окружения, и они приняли участие в оборонительной операции на Нарвском шоссе.
В августе 1941 года Михаила Степановича назначили на должность заместителя командующего 55-й армии в составе Ленинградского фронта, он принимал участие в боях за оборону Ленинграда. В январе 1942 года Шумилов был назначен на должность заместителя командующего 21-й армией в составе Юго-Западного фронта, после чего принимал участие в ходе боевых действий лета 1942 года на харьковском направлении и на Дону.
Далее судьба уготовила нашим войскам страшное сражение, в котором пришлось принимать участие и Михаилу Степановичу. В августе 1942 года генерал-майора Шумилова назначили на должность командующего 64-й армией, которая около месяца сдерживала 4-ю танковую армию под командованием Германа Гота на дальних подступах к Сталинграду, благодаря чему промышленные предприятия, расположенные на юге города, продолжали работать.
Армия Шумилова приняла участие в окружении немецких войск в районе Сталинграда, 31 января 1943 года Михаил Степанович Шумилов руководил допросом генерала-фельдмаршала Фридриха Паулюса, взятого в плен 64-й армией. За свои заслуги в Сталинградской битве 16 апреля 1943 года 64-я армия была преобразована в 7-ю гвардейскую.
Армия под командованием Шумилова принимала участие в Курской битве, форсировании Днепра, а также в Кировоградской, Уманско-Ботошанской, Ясско-Кишинёвской, Дебреценской, Будапештской, Братиславско-Брновской и Пражской наступательных операциях.
26 октября 1943 года Указом Президиума Верховного Совета СССР за умелое руководство воинскими соединениями во время форсирования Днепра и проявленные при этом личное мужество и героизм гвардии генерал-полковнику Михаилу Степановичу Шумилову присвоено звание Героя Советского Союза с вручением ордена Ленина и медали «Золотая Звезда».
После окончания Великой Отечественной Михаил Степанович Шумилов продолжил командовать армией.
В 1947 году он был направлен на учёбу на высшие академические курсы при Высшей военной академии имени К.Е. Ворошилова, после их окончания в 1948 году он был назначен на должность командующего Беломорским, а в 1949 году — на должность командующего Воронежским военными округами.
В 1956 году генерал-полковник Михаил Степанович Шумилов вышел в отставку, однако в апреле 1958 года был повторно призван в ряды Советской армии и назначен на должность военного консультанта Группы генеральных инспекторов Министерства обороны СССР.
Гвардии генерал-полковник Михаил Степанович Шумилов умер 28 июня 1975 года в Москве. По собственному завещанию был похоронен на Мамаевом кургане в Волгограде.
На Урале в честь Михаила Степановича названы улицы в Шадринске и Катайске, ему установлены памятники в Волгограде и Кургане.