Борис Михайлович Афанасьев родился 5 июня 1920 года в городе Брянске в семье рабочего. По окончании школы фабрично-заводского ученичества работал токарем, бригадиром ремонтной базы № 6 в поселке Урицкий под Брянском. В 1940 году вступил в ряды Рабоче-крестьянской Красной Армии, а в 1941 году окончил Чугуевскую военную авиационную школу пилотов.
Борис Михайлович Афанасьев воевал на Калининском (с 20 октября 1943 года — 1-й Прибалтийский) и 3-м Белорусском фронтах в должностях летчика, командира звена и заместителя командира эскадрильи.
К концу апреля 1945 года наш земляк совершил 367 успешных боевых вылетов, провел 23 воздушных боя, в которых сбил 8 самолетов противника лично и 1 — в группе. 152 вылета было произведено на разведку переднего края, важных узлов и рубежей обороны, коммуникаций и аэродромов в глубине обороны противника. Ведя разведку под плотным огнем зенитной артиллерии и отражая атаки истребителей противника, Афанасьев добывал важные разведывательные данные для последующих действий бомбардировочной и штурмовой авиации.
Указом Президиума Верховного Совета СССР от 29 июня 1945 года за образцовое выполнение боевых заданий командования на фронте борьбы с немецкими захватчиками и проявленные при этом отвагу и геройство заместителю командира эскадрильи 21-го Витебского Краснознаменного истребительного авиационного полка, старшему лейтенанту Афанасьеву Борису Михайловичу было присвоено звание Героя Советского Союза с вручением ордена Ленина и медали «Золотая Звезда».
После окончания Великой Отечественной войны Б. М. Афанасьев продолжил службу в Военно-воздушных силах. В 1956 году окончил курсы усовершенствования офицерского состава. С 1960 года — в запасе. За годы безупречной службы был награжден орденом Ленина, 3 орденами Красного Знамени, 2 орденами Отечественной войны 1-й степени, орденом Красной Звезды, медалями, орденом КНДР «Свобода и независимость».
Последние годы Борис Михайлович Афанасьев жил в городе Риге в Латвии. Умер 14 сентября 1976 года и был похоронен на рижском кладбище Микеля.