Занимался футболом с 14 лет. Тренировался в футбольной школе города Кировска, затем в футбольной школе города Стаханова, тренер -Новиков Александр Николаевич).
Привлекался в состав сборной России и сборной Украины.
Выступал за петербургский «Зенит», в 253 играх забил 30 голов. В 2007 году, когда «Зенит» стал чемпионом России, Горшков установил рекорд, став самым возрастным чемпионом за историю проведения чемпионата — на момент окончания ЧР-2007 ему было 37 лет и 277 дней, а также первым футболистом (вместе с Малафеевым), выигравшим в составе «Зенита» и кубок, и чемпионат.
1 мая 2008 года вышел в стартовом составе в полуфинальном матче кубка УЕФА против немецкого клуба «Бавария». 38-летний ветеран сыграл свой последний матч перед трибунами стадиона «Петровский», матч закончился со счётом 4:0. Последний матч в профессиональной карьере Горшков сыграл в 1/16 финала кубка России 2008/2009 против «Сибири», выступавшей в первом дивизионе. «Зенит» потерпел поражение со счетом 1-0 и покинул турнир.
15 ноября 2008 сыграл последний матч в рамках молодежного первенства России 2008 против московского «Динамо» (1:1).
Последний гол — 14 марта 2007 в рамках Кубка России против раменского «Сатурна» (1:1).
12 апреля 2009 года Александр Горшков вместе с Владиславом Радимовым прошёл круг почёта по стадиону «Петровский» в перерыве матча чемпионата России с пермским «Амкаром».
6 марта 2009 года назначен тренером молодёжного состава петербургского «Зенита». 1 июня 2010 года назначен тренером команды «Зенита» игроков 1993 года рождения.
С 14 января по 1 февраля 2011 года — главный тренер калининградской «Балтики».
5 марта 2012 года назначен на пост главного тренера «Нижнего Новгорода».
Женат, двое детей: сын Алексей и дочь Анастасия.
Итого: 2 матча / 0 голов; 0 побед, 1 ничья, 1 поражение.
Итого: 4 матча / 2 гола; 1 победа, 2 ничьих, 1 поражение.