Иван Васильевич Гаврилов родился 19 октября (7 октября — по старому стилю) 1899 года в городе Ейске Ейского отдела Кубанской области Российской империи (ныне город в Краснодарском крае Российской Федерации) в семье рабочего. В 1920 года Иван Гаврилов добровольно вступил в ряды Рабоче-крестьянской Красной Армии. Участвовал в Гражданской войне на Северном Кавказе. В 1921 году окончил кавалерийские курсы командного состава. Служил в различных кавалерийских частях, занимал должности командира взвода, эскадрона, начальника штаба полка. Перед войной служил командиром 129-го кавалерийского полка 14-й кавалерийской дивизии 5-го кавалерийского корпуса Киевского особого военного округа, который дислоцировался в городе Славута Каменец-Подольской (ныне Хмельницкой) области Украинской ССР.
В боях с немецко-фашистскими захватчиками подполковник И. В. Гаврилов с первых дней войны в составе Юго-Западного фронта. Участвовал в боях под Дубно, Бердичевым, Таращей, затем на Харьковском направлении. В декабре 1941 года 5-й кавалерийский корпус покрыл себя неувядаемой славой в боях под Ливнами в составе группы генерал-лейтенанта Ф. Я. Костенко. 7 декабря 1941 года 5-й кавалерийский корпус, 1-я гвардейская стрелковая дивизия, 129-я танковая бригада и 34-я мотострелковая бригада контратаковали 95-ю и 45-ю пехотные дивизии 2-й армии вермахта, заставив их перейти к обороне. Полк подполковника И. В. Гаврилова в бою под хутором Сербино 07.12.1941 года разгромил противостоявшие ему части противника, а 14.12.1941 года отбил у немцев деревню Россошное. Всего в ходе боёв полком Гаврилова было захвачено 50 пленных и большое количество боеприпасов. За отличие в боях подполковник И. В. Гаврилов был награждён орденом Красного Знамени. 5-й кавалерийский корпус приказом Народного комиссариата обороны СССР № 366 от 25 декабря 1941 года был преобразован в 3-й гвардейский. 14-я кавалерийская дивизия была переименована в 6-ю гвардейскую. Зимой — весной 1942 года дивизия, в которой служил И. В. Гаврилов, участвовала в оборонительных боях Юго-Западного фронта в составе 21-й, 38-й и 28-й армий, затем в Сталинградской битве. В марте 1943 года гвардии подполковник И. В. Гаврилов был ранен. После выздоровления в мае 1943 года его направили на курсы при Военной академии бронетанковых и механизированных войск Красной Армии имени И. В. Сталина.
В июне 1944 года полковник И. В. Гаврилов был назначен командиром 35-й механизированной бригады 1-го механизированного корпуса 1-го Белорусского фронта. Бригада Гаврилова отличилась в Белорусской операции в ходе её составной части — Бобруйской наступательной операции. 24 июня 1944 года 35-я механизированная бригада обходным манёвром с севера обеспечила преодоление стрелковыми подразделениями немецкой обороны в районе села Зубаревская Буда Гомельской области Белоруссии (ныне село Зуб Буда), после чего во взаимодействии с 219-й танковой бригадой освободила Старые Дороги, а к исходу 29 июня 1944 года овладела городом Слуцк.
В октябре 1944 года Иван Васильевич был ранен вторично. На фронт он вернулся в начале февраля 1945 года и 14.02.1945 года был назначен командиром 19-й гвардейской механизированной бригады 8-го гвардейского механизированного корпуса 1-й гвардейской танковой армии 1-го Белорусского фронта. В ходе Восточно-Померанской операции 19-я гвардейская механизированная бригада под командованием гвардии полковника И. В. Гаврилова, на время операции переданная 2-му Белорусскому фронту, действуя в авангарде корпуса, стремительным маршем вышли севернее города Лауенбург, обеспечив его захват частями корпуса. Затем бригада захватила переправы в районе населённого пункта Кневербрух, чем обеспечила прорыв бригады в район Большау, после чего во взаимодействии с другими бригадами овладела городом Нойштадт. К 20 марта 1945 года бригада прорвала сильно укреплённую оборону противника и вышла на подступы к городу Гдыня в районе населённого пункта Яново. В ходе боёв в период с 02.03.1945 года по 20.03.1945 года бригадой Гаврилова было уничтожено 2865 солдат и офицеров противника, 78 пулемётов, 4 орудия и миномёта, 10 самоходных установок, 129 автомашин и мотоциклов. В плен сдались 486 военнослужащих вермахта. В качестве трофеев были захвачены 41 пулемёт, 10 миномётов и 9 орудий различного калибра.
После разгрома группы армий «Висла» войска 1-го Белорусского фронта начали подготовку к Берлинской операции. 16 апреля в штаб 1-й гвардейской танковой армии поступила телеграмма:
«Катукову, Попелю. 1-й гвардейской танковой армии поручается историческая задача: первой ворваться в Берлин и водрузить Знамя Победы. Лично вам поручается организовать исполнение. Пошлите от каждого корпуса по одной лучшей бригаде в Берлин и поставьте им задачу: не позднее 4-00 утра 21 апреля любой ценой прорваться на окраину Берлина. Жуков, Телегин»
Лучшей бригадой 1-й гвардейской танковой армии была 19-я гвардейская механизированная бригада. Она уже 15 апреля 1945 года прорвала сильно укреплённую и глубоко эшелонированную оборону противника на реке Одер. Продвигаясь с боями вперёд, отражая постоянные атаки противника, бригада 25.04.1945 года ворвалась в Берлин и захватила несколько переправ через каналы в черте города. За период боёв бригадой было уничтожено 713 солдат и офицеров противника, 2 пушки, 9 миномётов, 9 пулемётов, 15 автомашин, 2 самолёта. Захвачено в качестве трофеев 40 самолётов, 15 автомашин и большое количество складов с различным имуществом. Но 26 апреля 1945 года в ходе уличных боёв при отражении контратаки противника гвардии полковник И. В. Гаврилов пал смертью храбрых. Похоронили его в Берлине в парке Тиргартен. Позднее здесь был возведён мемориал павшим советским воинам.
Послужной список
С 05.04.1944 г. по 15.09.1944 г. подполковник в 35 мбр