Семшов начинал играть в футбол в Москве, оказавшись в СДЮШОР ЦСКА.
В 1991 году ему доверили охранять трофей Кубка СССР на финальном матче[4].
Пройдя все ступени в системе армейского клуба, в 1996 году 18-летний полузащитник дебютировал за первую команду ЦСКА, проведя в чемпионате два матча. В следующем сезоне сыграл девять матчей и открыл счёт своим голам на высшем уровне. ЦСКА в те годы являлся середняком чемпионата, а сам Семшов не демонстрировал особо яркой игры, не всегда попадая в основной состав.[источник не указан 1041 день]
В 1998 году перешёл в состав московского «Торпедо». Стал игроком стартового состава уже в первый же сезон. Здесь окончательно освоился на позиции центрального полузащитника, выполняя как атакующие, так и оборонительные функции.[источник не указан 1041 день] В 2000 году команда выиграла бронзовые медали чемпионата, которые стали первыми в карьере Семшова. С 2001 года образовал надёжную связку в центре полузащиты с Константином Зыряновым.[источник не указан 1041 день] За годы выступления в составе «Торпедо» стал капитаном команды и любимцем болельщиков,[источник не указан 1041 день] четыре раза признавался лучшим игроком команды по итогам года, становился обладателем премии «Честная игра». В 2005 году у клуба начались финансовые проблемы.
В 2005 году Юрий Сёмин пригласил Семшова в московское «Динамо». Поначалу дела у клуба шли не очень и он, несмотря на ожидания, был вынужден бороться за выживание.[источник не указан 1041 день] При этом Семшов был одним из немногих игроков команды, удостоившихся положительных оценок.[источник не указан 1041 день] После того как команду возглавил Андрей Кобелев, её дела стали налаживаться и в 2008 году она выиграла бронзовые медали. К тому времени Семшов стал безоговорочным лидером,[источник не указан 1041 день] и дважды подряд признавался лучшим игроком «Динамо» по версии болельщиков.
Это предопределило возвращение Семшова в «Динамо»[6]. Следующие два сезона он вновь провёл на достаточно высоком уровне, являясь лидером «бело-голубых».[источник не указан 1041 день] Лишь в 2012 году, после назначения на тренерский пост Дана Петреску, Семшов начал терять место в основном составе. В результате летом 2013 года «Динамо» расторгло контракт с игроком[7].
31 июля 2013 года заключил годовой контракт с «Крыльями Советов»[8], при этом первый гол в составе самарцев забил в матче против своей бывшей команды. 14 февраля 2015 года Семшов заявил о завершении карьеры[9].
В январе 2017 стал помощником Сергея Кирьякова в клубе РФПЛ «Арсенал» (Тула)[10]. Впоследствии ассистировал сменившему Кирьякова на посту главного тренера Миодрагу Божовичу[11]. В июне 2018 возглавил клуб ПФЛ «Химик» Новомосковск[12]. 31 октября был дисквалифицирован на один матч (и три — условно) за оскорбительные высказывания в адрес судей после матча с липецким «Металлургом»[13]. 7 ноября 2018 года расторг договор с «Химиком» по взаимному соглашению сторон[14] и вошёл в тренерский штаб нового главного тренера «Арсенала» Игоря Черевченко[15]. В октябре 2020 года вошёл в тренерский штаб Черевченко в «Химках». Покинул клуб 25 октября 2021 года после того как руководство клуба расторгло контракт с Черевченко[16].
Выступал за олимпийскую и молодёжную сборную России. Забил 1 гол в матче против молодёжной сборной Польши.
Первый матч за национальную сборную России провёл 17 мая 2002 года в товарищеской игре на Кубке LG в Москве против Белоруссии. Игра завершилась вничью 1:1, а в серии пенальти сборная России уступила 4:5.
Бронзовый призёр чемпионата Европы 2008. Провёл все пять игр. На групповом этапе в матче против Греции в одном из эпизодов он выбил мяч, летевший в незащищённый угол после удара головой Ангелоса Харистеаса, и спас команду от гола (при этом мяч рикошетом от ноги попал Семшову в лицо и ушёл затем за лицевую)[17].
Первый гол забил в товарищеской встрече с Аргентиной 12 августа 2009 года (2:3). Первый гол в официальном матче — 9 сентября 2009 года в игре с Уэльсом (3:1).
Последний матч за сборную провёл 29 мая 2012 года в товарищеской игре в Ньоне против Литвы. В этом матче он вышел на 72-й минуте, заменив Романа Широкова. Игра завершилась вничью 0:0. ФИФА этот матч впоследствии не включила в официальный реестр.
Отец Пётр Иванович Семшов (бывший тренер ФШМ «Торпедо» и ФК «Кунцево»), мать Вера Михайловна Семшова (домохозяйка). Сестра Кристина Семшова. Жена Лариса, дочь Виктория, сын Виктор.[источник не указан 1041 день]