Родился 20 марта 1920 года в с. Слизнево (Нижегородская область). Русский. В 1940-1941 годах служил в 18-м отдельном дивизионе конвойных войск НКВД. С первых дней войны на фронте. Наводчик орудия 1-й батареи 168-го отдельного истребительно-противотанкового дивизиона (1-й Украинский фронт) старший сержант Захаров при прорыве обороны противника на сандомирском плацдарме подавил 5 пулемётных точек, взорвал 3 дзота и 75-мм орудие, уничтожил несколько десятков солдат и офицеров противника. 21 января 1945 года во время очередной Контратаки был тяжело ранен. После войны жил в селе Вад (Нижегородская область). Награжден орденами Ленина, Красного Знамени, Отечественной войны 1-й степени, Славы 3-й степени, двумя орденами Красной Звезды, медалями. Умер 7 февраля 2003 года.
Звание Героя Советского Союза присвоено 27 июня 1945 года.