Михаил Варнаков родился 1 марта 1985 в городе Нижний Новгород. Является сыном хоккеиста и тренера Михаила Павловича Варнакова. Воспитанник СДЮШОР «Торпедо», города Нижний Новгород. Играл за дубль нижегородского «Торпедо». Первый матч за дубль состоялся 20 ноября 2000 года. Дебют юного спортсмена состоялся в 15 лет.
В сезоне 2002 - 2003 года, Варнаков играл за юниорский и дублирующий составы московского хоккейного клуба «Динамо». По результатам сезона 2002/2003 года, в первенстве бомбардиров среди юношей 1986 года рождения, вошел в десятку лучших. С сезона 2003/2004 года, являлся основным нападающим и лидером команды хоккейного клуба «Торпедо» Нижний Новгород.
В сезоне 2006/2007 года, хоккеист входил в пятерку лучших бомбардиров западного дивизиона высшей лиги России по хоккею с шайбой. После трехлетнего перерыва, помог команде снова оказаться в Суперлиге. В сезоне 2007/2008 года, признан лучшим снайперов команды.
В «Торпедо», Михаил Варнаков играл под номером «18», на позиции правого нападающего, отец хоккеиста в прошлом играл, либо слева, либо в центре. Журналисты отмечают похожесть на своего отца - Варнакова Михаила Павловича как внешне, так и по манере игры. Являлся участником матча звезд КХЛ 2013 года, где отметился двумя забитыми шайбами.
После того, как хоккейный клуб «Торпедо», в сезоне 2012/2013 года, фактически, потерял шансы на выход в плей-офф, Варнаков, контракт которого заканчивался в конце сезона, пополнил состав лидера регулярного чемпионата Питерского хоккейного клуба «СКА». В составе новой команды Варнаков провел 4 матча в регулярном чемпионате и 15 игр в плей-офф, завоевав бронзовые медали турнира.
Особо ярко, хоккеист выступил в первом раунде Кубка Гагарина против хоккейного клуба «Атлант», набрав в 5 матчах 6 очков. Тогда же, по итогам февраля, Варнаков с 9-ю очками в 9-и играх, назван лучшим нападающим месяца по версии КХЛ. По окончании сезона 2012 - 2013 года, подписал контракт с казанским хоккейным клубом КХЛ «Ак Барс». На начало сезона 2017/2018 года, Варнаков выступает в качестве нападающего хоккейного клуба КХЛ «Динамо» Москва.