Родился на хуторе Ольшанка станицы Урюпинской Хопёрского округа области войска Донского в семье донского казака.
Окончил кавалерийские курсы (1921), кавалерийскую школу, штабное отделение кавалерийских курсов усовершенствования комсостава (1933), высшие академические курсы при Военной академии РККА имени К. Е. Ворошилова (1946).
В Красной Армии с июля (фактически — с августа) 1920. Участник Гражданской войны, участвовал в разгроме кулацких банд Антонова и Колесникова.
В межвоенный период командовал взводом в 25-й стрелковой дивизии имени В. И. Чапаева, командир и политрук эскадрона, начальник отделения штаба 9-й Крымской кавалерийской дивизии, начальник полковой школы, начальник штаба 52-го кавалерийского полка, командир 49-го кавалерийского полка, помощник командира 14-й кавалерийской дивизии, начальник отдела кадров начсостава КОВО и ОдВО. В апреле 1941 был назначен командиром 206-й стрелковой дивизии.
С началом Великой Отечественной войны дивизия участвовала в приграничном сражении и в обороне Киева. Вышел с группой бойцов и командиров из окружения в обмундировании, с оружием, документами и орденами, был тяжело ранен, вынесен адъютантом и медсестрой. В ноябре 1941 был назначен командиром 15-й казачьей кавалерийской дивизии СКВО. В июле 1942 дивизия была включена в состав Северо-Кавказского фронта, затем Черноморской группы войск Закавказского фронта и участвовала в Битве за Кавказ. За успешное выполнение заданий командования, героизм личного состава она была преобразована в 11-ю гвардейскую. В боевой характеристике от 1 декабря 1943 подчёркивалось: «Гвардии генерал-майор Горшков Сергей Ильич в боях проявил себя грамотным, смелым, решительным, настойчивым и вёл полки в бой, преодолевая сопротивление превосходящих сил противника… Дивизия под его командованием была преобразована в гвардейскую и награждена орденом Красного Знамени». С мая 1943 — заместитель командира 5-го гвардейского Донского казачьего кавалерийского корпуса Южного фронта. В октябре корпус принял участие в освобождении Левобережной Украины и вышел к Днепру у города Цюрупинска. С декабря того же года — заместитель командира 4-го гвардейского Кубанского казачьего кавалерийского корпуса. Во время Одесской операции был тяжело ранен. В мае 1944 тяжело заболел командир 5-го гвардейского Донского казачьего кавалерийского корпуса А. Г. Селиванов, и Горшков был назначен его командиром. Корпус в составе конно-механизированной группы под его командованием участвовал в Ясско-Кишинёвской, Дебреценской и Будапештской наступательных операциях, в освобождении городов Тыргу-Фрумос, Роман, Бакэу, Дебрецен, Ньиредьхаза, Мишкольц. За отличие при освобождении Будапешта корпусу было присвоено почётное наименование «Будапештский». В Венской наступательной операции корпус освободил города Надьканижа, Ново (в конном строю), Фридберг и Фишбах. После войны С. И. Горшков продолжал командовать корпусом. С марта 1946 он учился на Высших академических курсах при Высшей военной академии имени К. Е. Ворошилова. С ноября того же года — в отставке по болезни. Жил в городе Ростове-на-Дону, вёл большую военно-патриотическую работу, возглавлял научное общество СКВО, был депутатом горсовета. В 1979 удостоен звания почётного гражданина города. В рассказе Константина Симонова «Сын Аксиньи Ивановны» выведен под именем полковника Вершкова.
В Ростове-на-Дону именем Горшкова назван проспект.