Родился в июле 1919 года.
На действительную военную службу был призван в октябре 1939 года. Проходил ее в составе 65-й стрелковой дивизии Забайкальского военного округа в районе Даурских степей на Китайско-Восточной железной дороге. Когда началась Великая Отечественная война, дивизию перебросили на Ленинградский фронт.
Впоследствии 65 стрелковая дивизия была преобразована в 102 Гвардейскую. За боевые заслуги личного состава и проявленные при этом мужество и отвагу дивизии было присвоено название Новгородско-Померанская, а ее боевое Гвардейское знамя украсили ордена Красного Знамени, Суворова и Красной Звезды. Под этим знаменем Иван Захарович прошел с боями от Тихвина, где получил первое боевое крещение, до земли Новгородщины, где был впервые ранен.
Лечился в госпитале в городе Череповец. Затем получил назначение во вновь формирующуюся 119 стрелковую дивизию, которая в составе 5-й Танковой армии была переброшена под Сталинград.
Принимал участие в боях за освобождение Левобережной и Правобережной Украины, Молдавии, Румынии, Болгарии, Югославии, Венгрии. В боях за Будапешт был ранен и в конце декабря 1944 года демобилизован инвалидом войны 2-й группы.
Награжден орденом Красной Звезды, орденом Отечественной войны, медалями "За отвагу", "За боевые заслуги", "За оборону Сталинграда", "За оборону Ленинграда", "За взятие Будапешта", "За победу над Германией".