Родился в селе Никольское, ныне Данковского района Липецкой области. После окончания школы фабрично-заводского ученичества работал слесарем Люберецкого завода сельхозмашиностроения, техником-нормировщиком окружных ремонтных мастерских. В Красной Армии служил с апреля 1941 года. Участник Великой Отечественной войны с июня 1941 года. В 1943 году окончил курсы младших лейтенантов. Пулемётная рота 492-го стрелкового полка 199-й стрелковой дивизии 49-й армии 2-го Белорусского фронта, под командованием лейтенанта 3ахарова 26 июня 1944 года форсировала реку Днепр севернее города Могилёва Белорусской ССР, захватила плацдарм на правом берегу и обеспечила преодоление водной преграды другими частями стрелкового полка. Звание Героя Советского Союза присвоено 24 марта 1945 года. Участник Парада Победы 24 июня 1945 года на Красной площади в Москве. Окончил высшие офицерские курсы «Выстрел» (1946 г.), Военную академию тыла и снабжения (1956 г.). Проходил военную службу в городе Горьком. С 1967 года гвардии полковник Захаров – в запасе. Работал инженером в управлении Волжского объединённого речного пароходства. После ухода на пенсию был членом Президиума Нижегородского городского Совета ветеранов, возглавлял Нижегородскую областную секцию по работе с Героями Советского Союза, Героями России и кавалерами орденов Славы 3-х степеней. Почетный гражданин города Нижнего Новгорода (26.04.2000) и Нижегородской области (22.04.2004). Жил в Нижнем Новгороде, похоронен на кладбище «Марьина Роща». Награды: ордена Ленина (24.03.1945), Отечественной войны 1-й (06.04.1985) и 2-й (23.02.1944) степени, Красной Звезды (02.07.1944, 30.12.1956), медали, в т. ч. «За отвагу» (26.06.1944) и «За боевые заслуги» (17.05.1951). Память: в Нижегородском районе города Нижнего Новгорода на доме № 27/4 по улице Минина, где жил Герой, установлена мемориальная доска.