Родился 4 сентября 1921 года в деревне Старое Закружье Могилевской губернии. Окончил 7 классов.
Работая на авторемонтном заводе имени Кирова в Могилеве, занимался в аэроклубе.
В 1942 году окончил Армавирскую военную авиационную школу.
В боях с июля 1942 года.
К февралю 1944 года старший лейтенант Кулагин сбил 22 самолета и был представлен к званию Героя Советского Союза.
Войну летчик закончил в Германии, в составе 2-го Белорусского фронта.
Капитан Кулагин провел 146 воздушных боев, уничтожил лично 32 и в группе — 7 самолетов противника.
После войны служил в ВВС. Окончил Высшие офицерские летно-тактические курсы, в 1954 году — Военно-воздушную академию.
В 1955 году полковник Кулагин был демобилизован.
С 1959 года работал инструктором Заводского райкома компартии Минска, с 1961 года — инструктором, а позднее — заведующим сектором ЦК КП Белоруссии.
Жил в Минске.
Умер 9 августа 1980 года.
Герой Советского Союза (01.07.1944).
Награжден орденом Ленина, тремя орденами Красного Знамени, орденами Александра Невского, Отечественной войны 1-й степени, Красной Звезды, медалями.