За период боевых действий произвел 258 боевых вылетов, провел 85 воздушных боев, сбил лично 21 самолет противника.
Родился в семье крестьянина под городом Орша Витебской области. Белорус.
Отец умер рано и пятеро детей остались без кормильца. С шести лет Иван пошел в подпаски в соседнее село, чтобы заработать на учебники и с осени пойти в школу. Учился охотно и хорошо, а потом вновь нанимался работать пастухом, стараясь хоть чем-нибудь помочь матери.
Окончив 7 классов, в 1937 году, поступил в профессионально-техническое училище Оршанского льнокомбината, овладел профессией ткача;, также в этом году он начал заниматься в Оршанском аэроклубе.
В Красной Армии с 1938 года. Направлен в Одесскую авиашколу. В июне 1941 года окончил Чугуевское военное авиационное училище.
Воевать начал в январе 1942 года в 148-го истребительном авиаполку в звании сержанта. В августе 1942 года был включён в состав 9-го гвардейского истребительного авиаполка.
29 апреля 1943 скончался от отравления. К тому времени выполнил около 260 боевых вылетов. Проведя около 90 воздушных боёв, сбил 14 самолётов лично и 8 в группе (по другим источникам — 13 лично и 9 в группе ).
Погиб на своем аэродроме 29 апреля 1943 года в результате несчастного случая. Похоронен в городе Ростов-на-Дону.