Родился в селе Слизнево, ныне городского округа г. Арзамас Нижегородской области, в семье крестьянина. До призыва в Красную Армию в 1940 году, работал в колхозе. Участник Великой Отечественной войны с июня 1941 года. 21 января 1945 года наводчик орудия 168-го отдельного истребительно-противотанкового дивизиона 181-й стрелковой дивизии 6-й армии 1-го Украинского фронта, старший сержант Захаров при прорыве обороны противника на Сандомирском плацдарме подавил несколько пулемётных точек и 75-мм пушку противника. Во время очередной контратаки был тяжело ранен, но поля боя не покинул. Звание Героя Советского Союза присвоено 27 июня 1945 года.
После окончания войны жил в селе Вад Горьковской/Нижегородской области. Работал инженером производственного объединения «Горьковколхозстрой». Похоронен на кладбище села Вад.
Награды: ордена Ленина (27.06.1945), Красного Знамени (05.11.1944), Отечественной войны 1-й степени (06.11.1985), Красной Звезды (16.11.1943, 20.03.1944), Славы 3-й степени (25.01.1945).
Память: на Аллее Героевв селе Вад ему установлен бюст.