Родился 13 (26) февраля 1910 в городе Каменец-Подольский в семье учителей.
С 1912 по 1926 год жил и учился в Коломне. После окончания средней школы № 9 поступил на физико-математический факультет Ленинградского университета. В 1927 году покидает университет и поступает в Ленинградское Военно-морское училище имени М. В. Фрунзе, которое заканчивает в 1931 году и начинает службу штурманом на эскадренном миноносце «Фрунзе» в Чёрном море. После перевода на Тихоокеанский Флот, продолжает службу штурманом на минном заградителе «Томск», становится флагманским штурманом бригады, командует сторожевым кораблем, эсминцем. В 1937 году заканчивает специальные курсы командного состава ВМФ и в звании капитана 3-го ранга командует 7-й морской бригадой во время боев у озера Хасан. В 1939 году получает звание капитана 2-го ранга, переводится обратно на Черноморский флот и назначается командиром бригады эскадренных миноносцев, а уже в 1940 году командует бригадой крейсеров.
Принимал активное участие в боевых действиях Черноморского флота, командовал Азовской и Дунайской военными флотилиями. Руководил высадкой многих тактических и оперативных десантов. В 1945 году командующий эскадрой; в 1948—1951 годах. начальник штаба, затем командующий Черноморским флотом; в 1955 году становится первым заместителем главнокомандующего, а с 5 января 1956 года по 9 декабря 1985 года главнокомандующий ВМФ — заместитель министра обороны СССР. С 1962 года — Адмирал флота, а с 26 октября 1967 года — Адмирал Флота Советского Союза. С 1985 года в Группе Генеральных инспекторов МО СССР. Член ЦК КПСС с 1961 года (кандидат с 1956 года). Депутат Верховного Совета СССР 4-11-го созывов.
Сторонник развития океанского флота, подводного флота, дальних боевых походов.
Умер в 1988 году. Похоронен на Новодевичьем кладбище.
Деятельность С. Г. Горшкова как главнокомандующего ВМФ подвергается критике за проведение несбалансированной политики строительства флота. В частности, за отказ от строительства авианосцев в пользу тяжёлых авианесущих крейсеров, дорогостоящих, но не способных противостоять авианосцам класса «Нимиц» и решать широкий спектр задач.
Также по мнению некоторых исследователей[кто?], в своих карьерных интересах С. Г. Горшков выступал противником программы строительства флота адмирала Н. Г. Кузнецова и проводником интересов группы маршала Д. Ф. Устинова, связанной с военно-промышленным комплексом СССР. Следствием этого было создание неоправданно большого количества разнотипных кораблей, систем вооружения и радиоэлектронного оборудования.
«…строительство надводного флота ВМФ СССР было неоправданно расточительным и нелогичным. Например, игнорировалась настоятельная необходимость строительства крупных авианосцев, без которых флот просто был неспособен вести полноценные боевые действия в условиях как локальных боевых конфликтов, так и неограниченной ядерной войны. В то же время надводный флот пополнялся 4-мя (!) типами крейсеров одновременно. Практически каждый судостроительный завод строил свой тип корабля (за исключением ССЗ им. А. А. Жданова, строившего параллельно два типа: пр. 956 и пр. 1155). При этом в богатой Америке строили крейсера только одного типа — «Тикондерога», да и то унифицированного со своим прототипом — эсминцами типа «Спруенс».
Разнотипность стала общей бедой не только в кораблестроении. Системы вооружения и радиоэлектронного оборудования, стоявшие на борту советских кораблей также отличались большой разнотипностью. В течение последних двух десятилетий в СССР было введено в строй 45 типов боевых кораблей (ПЛ-АВ-КР-ЭМ-СКР), в США — 16 типов. На вооружение кораблей (без авиационного) было принято 30 типов ракет, в США — только 10 типов…»