Михаил Карпович Ефанов родился 15 ноября 1910 года в селе Чердаты ныне Зырянского района Томской области в крестьянской семье. Окончил 4 класса сельской школы, после чего работал по найму. В 1932–1934 годах проходил службу в Красной Армии. По возвращении домой работал заведующим пекарней в Зырянском леспромхозе. 22 июня 1941 года вновь призван в армию Зыряновским райвоенкоматом. На фронте с января 1942 года. Служил понтонером, воевал на Северо-Западном, Воронежском, Степном и 2-м Украинском фронтах. Отличился во время форсирования Днепра осенью 1943 года.
Утром 26 сентября 1943 года при форсировании реки Днепр у села Бородаевка Верхнеднепровского района Днепропетровской области Украины красноармеец Ефанов заменил раненого командира отделения. Под его руководством понтонеры завершили сборку парома и приступили к переправе. Первыми рейсами, в исключительно трудных условиях под непрерывным огнем противника отделение Ефанова переправило на правый берег батальон и шесть противотанковых пушек.
Работа паромной переправы продолжалась несколько дней. 28 сентября 1943 года Ефановым на правый берег Днепра были доставлены пятьсот бойцов с вооружением. 1 октября, когда во время рейса с танком на борту у ведущего катера заглох мотор на середине реки, Ефанов, оценив обстановку, дал команду «к веслам». Бойцы, борясь с течением реки, доставили танк и пехоту к установленному месту высадки.
Указом Президиума Верховного Совета СССР от 20 декабря 1943 года за мужество и героизм, проявленные при форсировании Днепра и удержании плацдарма на его правом берегу, понтонеру 40-го отдельного моторизованного понтонно-мостового батальона 7-й гвардейской армии Степного фронта красноармейцу Ефанову Михаилу Карповичу присвоено звание Героя Советского Союза.
В декабре 1945 году старший сержант М.К. Ефанов был демобилизован. Работал инструктором Зырянского райкома партии, директором хозрасчетного хозяйства, начальником автотранспортного стройучастка. С 1960 года жил в городе Новосибирске. Награжден орденом Ленина, медалями.
Скончался 14 октября 1962 года. Похоронен в Новосибирске на Заельцовском кладбище, где на Алее Героев в рамках программы «Белый тополь» ему был установлен памятник.