Григорий Кузнецов родился 18 июня 1911 года в деревне Шевелёво (ныне — Сокольский район Нижегородской области). После окончания школы работал на золотых приисках в Якутской АССР. В 1937—1939 годах проходил службу в Рабоче-крестьянской Красной Армии. В 1942 году Кузнецов повторно был призван в армию. С сентября того же года — на фронтах Великой Отечественной войны. Участвовал в Сталинградской битве, был ранен.
К марту 1944 года гвардии старший сержант Григорий Кузнецов был помощником командира взвода 93-й отдельной гвардейской разведроты 88-й гвардейской стрелковой дивизии 28-го стрелкового корпуса 8-й гвардейской армии 3-го Украинского фронта. Отличился во время освобождения Днепропетровской области Украинской ССР. В ночь со 2 на 3 марта 1944 года Кузнецов успешно организовал переправу через реку Ингулец в районе посёлка Зелёное (ныне — Криворожский городской совет) и со своим взводом атаковал вражеский опорный пункт, уничтожив пулемёт и 16 вражеских солдат и офицеров. В том бою Кузнецов лично уничтожил пулемётный расчёт противника. Продолжая наступление, взвод вклинился в немецкую оборону и отвлёк на себя большие силы противника, благодаря чему рота освободила Зелёное. В бою за второй опорный пункт противника Кузнецов лично уничтожил 20 вражеских солдат и офицеров, взял в плен ещё 6.
Указом Президиума Верховного Совета СССР от 3 июня 1944 года за «образцовое выполнение заданий командования и проявленные мужество и героизм в боях с немецкими захватчиками» гвардии старший сержант Григорий Кузнецов был удостоен высокого звания Героя Советского Союза с вручением ордена Ленина и медали «Золотая Звезда» за номером 3448.
После окончания войны Кузнецов был демобилизован. Проживал в Ивановской области, затем уехал в Донбасс, где работал на шахте. Трагически погиб во время аварии на шахте в июне 1953 года.
Был также награждён орденами Отечественной войны 2-й степени и Красной Звезды, рядом медалей.
В честь Кузнецова названа улица в Алдане.