Пузанов родился в 1947 г. в г. Тюмени. Окончил Омский политехнический институт, экстерном Омское танковое училище, Военную академию имени Фрунзе и Военную академию Генерального штаба.
Военную карьеру начал заместителем командира танковой роты по технической части в Сибири, служил в Прикарпатском и Среднеазиатском военных округах. С 1978 г. командовал мотострелковым полком. В 1979 г. командовал полком, который в составе контингента советских войск одним из первых вошел в Афганистан, был замкомандира 201-й мотострелковой дивизии, принимал участие во многих боях.
С 1983 по 1986 служил командиром 85-й мотострелковой дивизии в Сибирском военном округе, с 1988 г. занимал должность начальника штаба 11-й Гвардейской армии в Калининграде; с 1990 г. был командующим 49-й армией Северо-Кавказского военного округа. В 1992—1999 гг. — первый заместитель командующего, с апреля 1999 по март 2001 гг. — командующий войсками Московского военного округа. 28 марта 2001 г. был назначен заместителем министра обороны РФ одновременно с назначением на пост министра Сергея Иванова. В 2004 г. эта должность была упразднена. В 2005 г. назначен командующим войсками Ленинградского военного округа. Звание генерала армии Пузанову присвоено указом президента РФ от 27 декабря 2005 г.
В декабре 2005 г. стал депутатом Государственной думы и был уволен в запас. Ушел в отставку в январе 2012 г.