Родился в семье работников ГАЗа.
С 6 лет занимался в детской хоккейной секции ДЮСШ. Спортивную карьеру начал в клубе второй лиги «Полёт» , через полтора года был переведён в «Торпедо» .
В «Торпедо» он начал играть в тройке с Мишиным и Кокуриным, после был призван в армию и играл за армейский клуб СКА МВО, затем был переведён в ЦСКА.
В составе этой команды он стал чемпионом СССР.Хотя его убеждали остаться в команде, обещая включить в состав сборной команды СССР, Варнаков предпочёл вернуться в «Торпедо» . Там он вместе с Александром Скворцовым и Владимиром Ковиным вошёл в состав новой тройки. Звено Скворцов — Ковин — Варнаков стало одним из сильнейших в советском хоккее конца 70-х — начала 80-х и самой сильной тройкой в немосковских клубах.
В 1979 году это звено в составе хоккейного клуба «Крылья Советов» выезжало на турнир в Канаду. Из 21 шайбы, забитой в матчах с канадцами, более половины (13) были на счету именно этой тройки.
В том же году Варнаков в составе сборной СССР выезжал в Канаду на «Кубок Вызова» . Варнакова часто приглашали в состав сборной команды СССР, но, как правило, на участие в товарищеских матчах и различных турнирах. Впервые он выступил на мировом первенстве в 1985 году, где сборная завоевала третье место.
На чемпионате 1986 года Варнаков в составе команды становится чемпионом мира, а в 1987 году — серебряным призёром.После окончания спортивной карьеры в «Торпедо» Варнаков выступал в австрийских и немецких клубах.
С 1993 года на тренерской работе: был тренером и главным тренером нижегородского «Торпедо» , тренером московского «Динамо» , главным тренером хабаровского «Амура» .
С 2004 по 2005 года вновь работал главным тренером «Торпедо» .
С 2006 по 2008 — помощник Билялетдинова в казанском «Ак Барсе» .
С 2009 по 2012 годы был главным тренером ХК «Саров» .
В 2010 работал также в тренерском штабе «Торпедо» , но вернулся обратно.
С июня 2012 по июль 2014 был главным тренером молодёжной сборной России по хоккею с шайбой.Сын Михаил Варнаков также является профессиональным хоккеистом, долгое время выступал за нижегородское «Торпедо» , с 2013 года — нападающий казанского «Ак Барса» .Игровой номерВ «Торпедо» играл под номером 18, именной свитер с этим номером вывешен под сводами Дворца спорта в Нижнем Новгороде.
В сборной на Кубке Вызова 1979 и Суперсерии 1982/83 выступал под 10 номером, потом за Михаилом Варнаковым прочно закрепился 19 номер.
В клубной Суперсерии 1979/80 за ЦСКА выступал под 26 номером.