Константин Смирнов родился 27 января 1922 года в деревне Королёво ныне Мантуровского района Костромской области. Вырос в семье рабочего. Член ВКП(б)/КПСС с 1942 года. Окончил среднюю школу. Работал бухгалтером на заводе в городе Киеве.
В Красной Армии с июня 1941 года. Окончил Новоград-Волынское пехотное училище в 1941 году. В действующей армии с ноября 1941 года. Первое боевое крещение командир пулемётной роты Смирнов получил 5 декабря 1941 года под Москвой. Отличился на завершающем этапе войны, в боях за освобождение Прибалтики.
В середине июля 1944 года пулемётная рота гвардии старшего лейтенанта Смирнова первой подошла к берегу реки Неман. В ночь на 14 июля пулемётчики, используя подручные средства, преодолели водную преграду. Переправившись на западный берег, Смирнов организовал на занятой земле оборону. Решительные действия роты обеспечили успешную переправу всего полка.
Указом Президиума Верховного Совета СССР от 24 марта 1945 года за образцовое выполнение заданий командования и проявленные мужество и героизм в боях с немецкофашистскими захватчиками гвардии старшему лейтенанту Смирнову Константину Григорьевичу присвоено звание Героя Советского Союза с вручением ордена Ленина и медали "Золотая Звезда".
После войны продолжал службу в армии. С марта 1948 года – старший офицер военной комендатуры района Гома земли Тюрингия, затем, с мая 1949 года – командир роты 48-го пулеметно-артиллерийского полка 20-й пулеметно-артиллерийской дивизии 35-го стрелкового корпуса ДВВО на Сахалине.
С ноября 1951 года капитан Смирнов Константин Григорьевич был уволен в запас. Жил в посёлке Архиповка Савинского района Ивановской области. В 1980-е годы переехал в город Екабпилс, Латвия. Скончался 17 ноября 1989 года.
Награждён орденами Ленина, Красного Знамени, Отечественной войны 1-й степени, Красной Звезды и медалями.