Андрей Аршавин учился (начальные классы) в школе № 18 Санкт-Петербурга. Интерес к футболу Аршавину привил отец, в прошлом неплохой игрок. В детстве Аршавин, помимо футбола, увлекался ещё шашками и имел по ним юношеский разряд. Его тренер в секции шашек Дома пионеров и школьников Василеостровского района уговаривал Аршавина связать свою жизнь с профессиональной игрой в шашки, в которой он пророчил своему ученику большое будущее, но Аршавин предпочёл футбол.
Футболом начал заниматься с 7 лет. Мать Андрея Татьяна Аршавина привела сына в школу «Смена». Его первыми тренерами были Сергей Гордеев и Виктор Виноградов. За взрослую команду «Смены» начал играть в 16 лет. В 18 лет играл за фарм-клуб «Зенита» — «Зенит»-2. В 2000 году Юрий Морозов пригласил Аршавина в основную команду «Зенита».
Играл за «Зенит» с 2000 по 2008 год. Всего за девять сезонов в составе «Зенита» Аршавин сыграл в его составе 310 официальных матчей, забив 71 мяч и завоевал с командой пять трофеев.
Пиком выступления Аршавина в «Зените» стала игра в победном для петербургской команды Кубке УЕФА. Финальный матч против шотландского «Рейнджерса» завершился победой «Зенита» со счётом 2:0, а Аршавин был признан лучшим игроком матча. В том же году Аршавин стал обладателем Суперкубка Европы.
В сборной России Аршавин дебютировал в 20-летнем возрасте 17 мая 2002 года в товарищеском матче Россия — Белоруссия в рамках подготовки сборной России к чемпионату мира 2002 года. Аршавин был в списке кандидатов на поездку на чемпионат мира, но не попал в итоговую заявку. В течение следующих двух лет он сыграл за национальную команду только в двух матчах, во втором из которых (13 февраля 2003, Румыния — Россия, 2:4) открыл счёт своим забитым мячам за сборную. В 2003 году Аршавин выступал в молодёжной сборной России, сыграл 5 матчей, забил 1 гол.
В рамках подготовки к чемпионату Европы 2004 года в Португалии Аршавин сыграл свой четвёртый матч за сборную (28 апреля 2004, Норвегия — Россия, 3:2), но в заявку на турнир включён не был. После Евро-2004 нападающий «Зенита» стал постоянно вызываться в команду и быстро закрепился в её основном составе. В 2005 и 2006 годах Аршавин становился лучшим бомбардиром сборной, был капитаном команды в 2006—2007 годах.
Из-за того, что сборная России не смогла завоевать право выступления на чемпионате мира 2006 года в Германии, первым крупным турниром, в котором Аршавин смог принять участие в составе национальной команды, стал чемпионат Европы 2008 года.
На Евро-2008 27-летний Аршавин был заявлен под номером 10. Из-за дисквалификации он не мог принять участия в первых двух матчах. Впервые на турнире он вышел на поле в третьей встрече, заключительной в группе, против Швеции. В этом матче сборная России победила 2:0, решив задачу выхода в следующий круг, и показала хорошую игру. Аршавин был признан лучшим игроком матча. Он ярко выступил в четвертьфинальном матче со сборной Голландии. В этой игре он участвовал во всех трёх голах, которые забила сборная России. Вторую игру подряд Аршавин был признан лучшим игроком матча и получил восторженные отзывы специалистов и журналистов. По итогам турнира попал в символическую сборную Евро-2008. Признан лучшим игроком сборной России на чемпионате Европы.
После удачного выступления в Кубке УЕФА и на Евро-2008 Аршавин вошёл в число претендентов на «Золотой мяч» по версии журнала France Football и занял 6-е место, что является лучшим результатом для российского футболиста после распада СССР. Выдающаяся игра Аршавина привлекла к нему внимание ведущих топ-клубов Европы.
В составе «Арсенала» Аршавин дебютировал 21 февраля 2009 года. Был признан лучшим игроком премьер-лиги в апреле. Аршавин стал вторым российским легионером, когда-либо получавшим эту награду. До него такого добивался
Андрей Канчельскис в апреле 1996 года.
7 ноября 2009 года в гостевом матче с «Вулверхэмптоном» на 66-й минуте Аршавин забил свой 10-й гол в английской Премьер-лиге. Для этого ему потребовался 21 матч. 5 декабря в матче со «Сток Сити» забил свой сотый гол на высшем уровне, тем самым попав в «Клуб 100».
24 февраля 2012 года Аршавин был отдан в аренду в «Зенит» до конца чемпионата 2011/2012.
На Евро-2012 Аршавин ехал в качестве капитана сборной России. Команда не вышла из своей группы и покинула турнир. Аршавин по итогам Евро-2012 стал лучшим распасовщиком турнира, отдав 3 голевые передачи.
15 августа 2012 года прошла последняя игра Аршавина в сборной России: противником россиян в той встрече был Кот-д’Ивуар.
Сразу после Евро-2012 появились сообщения, что руководство «Зенита» отказалось от идеи выкупить контракт Аршавина, хотя до этого велись переговоры о возвращении Андрея в Россию. Руководство «Арсенала» после чемпионата Европы укрепилось в решении продать игрока.
27 июня 2013 года было официально объявлено о трансфере игрока в «Зенит». Соглашение с футболистом рассчитано на два года. 13 июля Аршавин провёл первый матч за «Зенит» после возвращения, выйдя в стартовом составе на матч за Суперкубок России против ЦСКА.
В начале сезона 2014/15 Аршавин довольствовался редкими выходами на замену. 13 сентября Аршавин впервые за долгое время вышел в стартовом составе в матче 7-го тура против «Динамо», который Андрей провёл очень активно и сначала поучаствовал в автоголе Дугласа, а затем сам забил гол с передачи Халка; по итогам голосования телезрителей на телеканале «Наш футбол» был выбран лучшим игроком матча.
Летом 2015 года контракт с «Зенит» подошёл к концу, и клуб решил его не продлевать. С 30 июня 2015 года Аршавин стал свободным агентом.
13 июля 2015 официально стал игроком «Кубани». 20 июля 2015 года сыграл свой первый матч против «Урала». Не отличившись ни разу за 8 встреч, 1 февраля 2016 Аршавин разорвал трудовое соглашение с клубом.
В ноябре 2015 года по приглашению нового главного тренера казахстанского клуба «Кайрат» Александра Бородюка прибыл в Алма-Ату. После дополнительных тренировок 18 марта 2016 года подписал контракт с «Кайратом» по схеме 1+1 и стал самым высокооплачиваемым футболистом клуба. По итогам чемпионата казахстанской премьер-лиги выиграл с «Кайратом» серебряные медали и стал лучшим футболистом чемпионата Казахстана по версии журналистов. В марте 2017 года выиграл Суперкубок Казахстана. 29 июня в матче первого квалификационного раунда Лиги Европы 2017/18 против «Атлантаса» (6:0) сделал дубль. Вошёл в пятерку лучших игроков сезона по версии ПФЛ, набрав 14 баллов. По итогам сезона 2017 вошёл в число 22 лучших игроков сезона. 5 ноября 2018 года заявил, что уйдёт из «Кайрата».
3 декабря 2018 года Аршавин, в эфире Матч ТВ, официально объявил о завершении профессиональной карьеры.