Родился в семье железнодорожного машиниста. По национальности белорус. С августа 1919 года принимал участие в Гражданской войне, воевал в частях ЧОН на Западном фронте. Член РКП(б) с 1920 года. Во время советско-польской войны в 1920 году политрук стрелковой роты Холостяков был ранен и попал в плен, где пробыл почти год. После возвращения из плена работал на различных неквалифицированных производствах.
В 1921 году добровольцем поступил в Рабоче-Крестьянский Красный Флот, назначен заместителем политрука в роте 2-го Балтийского флотского экипажа на Балтийском флоте. Окончил Военно-морское подготовительное училище (7-10.1922). В 1925 году окончил Военно-морское гидрографическое училище. Служил вахтенным начальником на линкоре «Марат» , командовал взводом флотского экипажа.
С 1925 года — штурман подводной лодки "Коммунар". Окончил подводный класс специальных курсов комсостава ВМС РККА в 1928 году. Служил старшим помощником командира подводной лодки "Пролетарий" (11.1928-5.1929), "Красноармеец", "Батрак"(5.1929-1.1930), пл "Л-55"(1.1930-1.1931). В 1931 – 1932 годах он - командир и комиссар подводной лодки «Большевик» Морских сил Балтийского моря (МСБМ).
Затем окончил Тактические курсы при Военно-морской академии, направлен на Тихоокеанский флот командиром дивизиона подводных лодок и одновременно – командир головной подводной лодки этого дивизиона, затем командир 5-й бригады подводных лодок Тихоокеанского флота. Осваивал дальние походы в открытый океан, подлёдное плавание, выполнение боевых задач в штормовую погоду. Имел репутацию одного из передовых советских командиров-подводников, выступал на Десятом съезде комсомола, в чиле первых подводников в 1935 году награждён высшим орденом СССР - орденом Ленина.
По обвинению в связи с арестованным бывшим начальником Морских сил Тихого океана флагманом флота 1-го ранга М. В. Викторовым капитан 2 ранга Холостяков был арестован 7 мая 1938 года, исключён из ВКП (б), лишён звания и наград. «За шпионаж в пользу Польши, Англии и Японии» приговорён к 15 годам исправительно-трудовых лагерей с последующим поражением в правах на 5 лет. Срок отбывал в лагере в бухте Ольга. В мае 1940 года был освобождён «за недоказанностью обвинения», восстановлен в звании и правах на награды.
Переведён на Черноморский флот, назначен командиром 3-й бригады подводных лодок (сентябрь 1940—февраль 1941), затем — начальником отдела подводного плавания штаба Черноморского флота (с февраля 1941 г.).
Через две недели после начала Великой Отечественной войны капитан 1 ранга Г.Н. Холостяков назначен начальником штаба Нововороссийской военно-морской базы, в сентябре 1941 - её командующим. Корабли и части Новороссийской военно-морской базы вели боевые действия на Чёрном море, осуществляли и обеспечивали морские перевозки, участвовали в Керченско-Феодосийской десантной операции (дек.1941-янв. 1942).
17 августа 1942 года был создан Новороссийский оборонительный район, а в конце августа противник вышел на ближние подступы к Новороссийску. Все находившиеся в городе части были подчинены капитану 1-го ранга Холостякову. Один из организаторов героической обороны Новороссийска. После падения Новороссийска со своим штабом перебирается в Геленджик. Заслуги Холостякова были оценены высоко - 13 декабря 1942 года ему присваивают звание контр-адмирала. В феврале 1943 года Холостяков участвует в организации десантов в районе Южной Озерейки и у Станички, а затем отвечает за снабжение с моря захваченного плацдарма на «Малой земле». В 1943 году при непосредственном участии Холостякова было организованно ещё два десанта: Новороссийская десантная операция 10-11 сентября и десант у Эльтигена.
Одновресенно с декабря 1943 года по март 1944 года исполнял должность командующего Азовской военной флотилией, на этом посту провел ещё две десантные операции – у мыса Тархан и в Керченском порту.
С декабря 1944 года — командующий Дунайской военной флотилией. Во главе её освобождал Югославию, Венгрию, Австрию, Словакию. Моряки флотилии отличились в Будапештской и Венской наступательных операциях, участвовали во взятии Будапешта и Вены. Провел ряд десантных операций силами флотилии. Вице-адмирал (24.05.1945).
В 1950 году Холостяков окончил Высшую военную академию имени К.Е. Ворошилова. С 1950 года — командующий Каспийской флотилией. С ноября 1951 года — командующий 7-м флотом на Дальнем Востоке (главная база флота — Советская Гавань).
В декабре 1952 года в Японском море погибла дизельная подводная лодка С-117 со всем экипажем (52 человека), через несколько месяцев после этой трагедии Холостяков был снят с поста командующего флотом. В мае 1953—1969 годах — заместитель начальника управления боевой подготовки Главного штаба ВМФ СССР. Много занимался строительством атомного подводного флота. В апреле — мае 1964 года был старшим на борту в первом дальнем 50-суточном походе АПЛ К-27 в Атлантический океан.
Женат дважды. Первая супруга участвовала в советско-финской и Великой Отечественной войнах, умерла вскоре после войны. Вторая супруга - Наталья Васильевна Куникова, вдова Героя Советского Союза Цезаря Куникова, погибла вместе с мужем. Имел сына.
Адмирал погиб 21 июля 1983 года в собственной квартире (дом № 19 на Тверском бульваре в Москве) от рук профессиональных похитителей наград Г. Калинина и его жены И. Калининой. В период с 1980 по 1983 годы эта пара совершила, по данным следствия, 39 краж государственных наград в девятнадцати городах СССР, похитив свыше 50-ти орденов Ленина, несколько Золотых звёзд Героев Советского Союза и Социалистического Труда, десятки других наград. При этом в Калининской области Калинин при краже икон убил пенсионерку. Как и к другим жертвам, к Холостяковым преступники пришли под видом журналистов 13 июля, но из-за пришедшего к Холостяковым знакомого от грабежа отказались и спешно ушли.
Однако они узнали, что среди наград адмирала есть редкие и уникальные ордена. Поэтому утром 21 июля Калинины вновь пришли к Холостяковым. Заподозрившая опасность жена адмирала попыталась выйти на лестничную площадку, но Калинин не дал ей выйти, затолкал в ванную и принесённой с собой монтировкой нанёс несколько ударов по голове, от которых женщина скончалась. Выскочив из ванны, Калинин столкнулся с бежавшим на помощь Холостяковым и тем же образом нанёс удары адмиралу, который потерял сознание и упал. Он скончался не приходя в сознание. Калинина в это время похитила китель адмирала с наградами.
Преступники скрылись из квартиры и покинули Москву. Они были арестованы сотрудниками МУРа в Иваново в октябре 1983 года. Часть наград были изъяты, некоторые они уже продали, а из Золотой Звезды Героя Советского Союза Калинин заказал себе печатку. В 1984 году состоялся суд, Г. Калинин был приговорён к высшей мере наказания — расстрелу, И. Калинина — к 15 годам лишения свободы.
Супруги Холостяковы похоронены на Кунцевском кладбище Москвы.