Родился в семье работников ГАЗа. С 6 лет занимался в детской хоккейной секции ДЮСШ. Спортивную карьеру начал в клубе второй лиги «Полёт», через полтора года был переведён в «Торпедо». В «Торпедо» он начал играть в тройке с Мишиным и Кокуриным, после был призван в армию и играл за армейский клуб Липецка, затем был переведён в ЦСКА. В составе этой команды он стал чемпионом СССР.
Хотя его убеждали остаться в команде, обещая включить в состав сборной команды СССР, Варнаков предпочёл вернуться в «Торпедо». Там он вошёл в состав новой тройки Ковин — Скворцов — Варнаков. В 1979 году эта тройка в составе хоккейного клуба «Крылья Советов» выезжала на турнир в Канаду. Из 21 шайбы, забитой в матчах с канадцами, 13 были на счету этой тройки. В том же году Варнаков в составе сборной СССР выезжал в Канаду на «Кубок Вызова». Варнакова часто приглашали в состав сборной команды СССР, но, как правило, на участие в товарищеских матчах и различных турнирах. Впервые Варнаков выступил на мировом первенстве в 1985 году. В тот год команда завоевала третье место. В 1986 году Варнаков в составе команды становится чемпионом мира, а в 1987 г. серебряным призёром.
После окончания спортивной карьеры в «Торпедо» Варнаков выступал в австрийских и немецких клубах. С 1993 года на тренерской работе: был тренером и главным тренером нижегородского «Торпедо», тренером московского «Динамо», главным тренером хабаровского «Амура». С 2004 по 2005 года вновь работал главным тренером «Торпедо». С 2006 по 2008 — помощник Билялетдинова в казанском «Ак Барсе».
С 2009 года главный тренер ХК Саров. В 2010 работал в тренерском штабе «Торпедо», но вернулся обратно.
В настоящее время его сын Михаил Варнаков является основным нападающим нижегородского «Торпедо».