Родился в г. Бугульма в 1894 году в семье мелкого служащего. Семья переехала в Оренбург, где Григорий закончил Оренбургское реальное училище.
С началом Первой мировой войны Григорий добровольцем записался в армию. Учился на курсах воздухоплавания для студентов технических отделений и офицеров (первая в России авиационная школа) в Петроградском политехническом институте, в 1915—1916 годах учился в Севастопольской лётной школе.
В 1916 году направлен в действующую армию. Воевал в составе 16-го КАО, в начале 1917 года переведен в 9-й истребительный отряд. Первую победу одержал, сбив самолёт над Язловцем, за что был награжден Георгиевским крестом. Летом 1917-го сбил второй немецкий самолёт. Всего за 1917-й год Сапожников сбил три самолёта, 2 из которых попали в недельные сводки Румынского фронта (были официально подтверждены). Войну закончил в чине прапорщика.
С началом Гражданской войны, после некоторых колебаний, Сапожников добровольно вступил в РККА. Весной 1918 года под Казанью в составе 1-й Совецкой боевой группы (впоследствии переименована в 1-й истребительный дивизион) участвовал в боях с войсками Народной армии и бело-чехами, ежедневно вылетая на разведку и штурмовку белогвардейских позиций. После того, как 16 августа один лётчик, бывший офицер старой императорской армии, перелетел на сторону врага, ко всем остальным бывшим офицерам-лётчикам возникло недоверие. Сапожникову пришлось оправдываться:
Сапожников был допущен до полётов, но на следующий день не вернулся из боя. В свете предшествовавших событий лётчика заподозрили в предательстве, но оказалось, что его «Ньюпор» был подбит огнем белогвардейцев. Григорий сумел приземлиться на нейтральной полосе, а затем при помощи пехотинцев оттащить машину на свою территорию. При этом противник пытался помешать эвакуации самолёта сильным огнём, и несколько красноармейцев погибли. Подбитый самолёт впоследствии удалось восстановить. В 1919 году воевал в составе 1-го истребительного дивизиона на Деникинском фронте.
Красвоенлёт Сапожников особенно отличился во время советско-польской войны в 1920 году. В мае 1-й истребительный дивизион был переброшен на Западный фронт. На берегу реки лётчики отряда организовали засаду и дежурили в воздухе в излюбленное время полетов противника (с 8 до 11 утра и в вечерние сумерки), однако неприятель постоянно уклонялся от боя. 9 мая Григорий Сапожников получил разрешение послать польским летчикам вызов:
На следующее утро, в 10 час. 30 мин., над аэродромом красных в Салтановке появились три польских самолёта «Эльфауге» (LVG C.V), нагруженных бомбами. Дежурное звено красных (Сапожников, Гвайта, Серёгин) встретило противника в воздухе. Поляки не приняли бой и, сбросив нерасконтренные бомбы в лес, начали уходить. Пулемёт на самолете Гвайты сразу отказал, а на самолёте Серегина стоял только несинхронный «Льюис» под верхним крылом, из которого попасть в цель было очень сложно. Бой вел практически один Сапожников. В результате преследования замыкающий польский самолет, управляемый командиром 12-й эскадры бывшим царским офицером капитаном Юргенсоном, был поврежден и приземлился на советской территории. Экипаж был взят в плен. 12 мая Троцкий, проездом посетивший аэродром в Салтановке, лично вручил Сапожникову орден Красного Знамени.
20 мая Сапожнков провёл еще два воздушных боя. В первый он вступил, когда возвращался после бомбометания, защищаясь от пытавшегося его перехватить польского летчика на самолете OEFFAG D.III (усовершенствованная австрийская версия германского истребителя Albatros D.III). Сапожников сумел перехватить инициативу и подбил противника, но на преследование не хватило бензина. Во время второго боя самолёт Сапожникова получил повреждения, но противник тоже был подбит.
29 мая лучший польский ас Стефан Павликовский совершил облет аэродрома, где базировался 1-й авиаотряд, вызывая противника на поединок. Сапожников принял вызов. После ряда стремительных маневров он зашел поляку в хвост и дал меткую очередь, пробившую радиатор вражеской машины. Павликовский с чадящим мотором сумел дотянуть до своих позиций.
В ночь на 7 июля 2, 8 и 10-я дивизии 16-й армии перешли в наступление. Летчики 1-го дивизиона поддерживали наземные войска бомбово-пулемётными ударами. За боевые успехи 1-й истребительный авиадивизион был награжден Почетным Революционным Красным Знаменем ВЦИК.
В августе 1-й авиаотряд перевели на Южный фронт (против Врангеля). Особенно жаркие бои разгорелись в середине августа над Каховкой. Сапожников и еще два лучших пилота (Кожевников и Мельников) составили отдельное т. н. «звено асов», которому поручили перехват и уничтожение вражеских самолетов-разведчиков. В то время он летал на новейшем английском истребителе «Сопвич-Снайп» (Sopwith 7F.1 Snipe), захваченном у интервентов на севере. Там же Сапожников освоил новый вид боевого применения истребителей — штурмовые действия в тесном контакте с кавалерией (об этом пишет в журнале «Вестник Воздушного Флота» его боевой товарищ Е. И. Гвайта).
4 сентября Сапожников прилетел в г. Александровск, чтобы поздравить с наградами друзей из Центральной авиагруппы. Накануне торжественного парада лётчики, в том числе и Сапожников, отметили это событие. Проснувшись и обнаружив, что личный состав авиагруппы убыл в город на парад, без него, Сапожников решил продемонстрировать участникам парада свое пилотажное искусство. Под угрозой оружия он заставил механика выпустить его самолет в воздух. Однако сразу после отрыва от земли, еще не разогнавшись, он так круто задрал нос машины, что самолёт, потеряв скорость, рухнул на землю. О похоронах Сапожникова лётчик А. К. Туманский вспоминал:
К моменту гибели на счету Григория Сапожникова достоверно числятся семь сбитых самолётов противника, из них три на фронтах Первой Мировой войны, и один аэростат.