↑ Количество игр и голов за профессиональный клуб считается только для различных лиг национальных чемпионатов, обновлено по состоянию на 30 апреля 2023 года.
↑ Количество игр и голов за национальную сборную в официальных матчах.
Воспитанник академии имени Коноплёва, карьеру начинал во втором дивизионе. Накануне сезона 2013/14 перешёл в столичное «Динамо». В сезоне 2015/16 сыграл в 29 матчах, а команда вылетела в ФНЛ. Летом 2016 года перешёл в «Спартак», подписав контракт на пять лет.
Летом 2012 года ездил на просмотр в московское «Динамо», но в итоге вернулся назад в Тольятти[5].
Очень скучал по дому, по Иркутску. Иногда закрывался в туалете и со слезами на глазах говорил по телефону с мамой. Она поддерживала, да и навещала четыре раза в год, хотя до Самары пять дней на поезде ехать. Мне домой тогда летать нельзя было – на это требовалось согласие родителей, да и я переживал очень сильно. Из Самары можно было долететь с пересадкой в Новосибирске, и я, бывало, подходил к случайному пассажиру и спрашивал: „До Иркутска не летите случайно?“ И потом за ним шёл, не дай бог потеряться[7].
В январе 2013 года всё-таки подписал контракт с ФК «Динамо» (Москва) на 2,5 года[8] с заработной платой в 250 тыс. рублей в месяц[9]. Начинал зимний сбор с молодёжным составом, но уже спустя две недели после его начала отправился на сбор с первой командой[10].
19 июля 2013 года в матче против «Анжи» (2:1) дебютировал в Премьер-лиге[11]. Впоследствии сыграл ещё в четырёх матчах во всех турнирах. 20 ноября 2014 подписал новый контракт с «Динамо» и стал чаще выходить в первой команде[12].
12 марта 2015 года в матче против итальянского «Наполи» дебютировал в Лиге Европы. К концу первого тайма получил вторую жёлтую карточку и был удалён с поля[13]. 18 мая в поединке против «Урала» забил свой первый гол за «бело-голубых»[14]. По итогам сезона 2014/2015 получил приз «Надежда „Динамо“», вручаемый лучшему молодому футболисту клуба из числа игроков основного состава, молодёжной команды и выпускного года школы[15].
В сезоне 2015/16 Зобнин стал ключевым игроком «Динамо» и попал в поле зрения английских суперклубов. В апреле издание The Daily Telegraph заявило о ведущихся переговорах между «Манчестер Юнайтед» и «Динамо»[16]. Источник Telegraph утверждал, что «дьяволы» готовы предложить Чичарито и 4,5 миллиона евро за Зобнина. Однако впоследствии само же издание выступило с опровержением данной информации. Зимой 2016 года хавбека так же пытались арендовать «Брюгге», «Андерлехт» и АЗ, однако «Динамо» не захотел отпускать игрока[17]. В итоге сезон 2015/16 Зобнин завершил в «Динамо», сыграв в 29 матчах из 30 возможных. По окончании сезона 2015/2016 «Динамо» вылетело в ФНЛ, а Зобнин стал очень востребован на трансферном рынке[18].
15 июня 2016 года московский «Спартак» официально объявил о переходе Зобнина[19][20]. Сумма трансфера составила 3 млн евро[9]. Контракт был рассчитан до 2020 года[21]. 28 июля в поединке отборочного раунда Лиги Европы против кипрскогоАЕКа Зобнин дебютировал за «красно-белых»[22]. 31 июля в матче против тульского «Арсенала» дебютировал за команду в чемпионате России[23]. Сходу полузащитнику удалось занять место в стартовом составе команды и стать одним из ведущих её игроков[24]. 3 апреля 2017 года Зобнин забил свой первый и второй голы за «Спартак», поразив ворота «Оренбурга», при этом футболист впервые в карьере забил ударом головой[25].
Первую половину следующего сезона Зобнин пропустил из-за травмы, полученной во время июньского матча сборной России, на поле он смог вернуться лишь в ноябре 2017 года, выйдя на замену в матче с «Краснодаром» 18 ноября 2017 года.
В марте 2019 года в матче против «Зенита» получил перелом руки[26].
29 февраля 2020 года в гостевом матче 20-го тура чемпионата России против московского «Динамо» (2:0) вышел в стартовом составе и с передачи Зелимхана Бакаева на 62-й минуте матча забил мяч[27]. 9 марта в домашнем матче против «Краснодара» (0:1) был впервые в карьере удалён в игре чемпионата России. 15 июля 2020 года в домашнем матче 29-го тура чемпионата России против «Ахмата» (3:0) на 51-й минуте матча с передачи Павла Маслова забил мяч, на 92-й минуте сделал голевую передачу на Гуса Тила и был признан экспертом «Матч ТВ» лучшим игроком встречи[28][29].
29 августа 2020 года сыграл 100-й матч за «Спартак» в чемпионатах России, в этой игре «Спартак» дома победил тульский «Арсенал» (2:1). Среди футболистов клуба в сезоне 2020/21 Зобнин являлся лидером по количеству матчей за команду в карьере[30].
29 мая 2022 года вместе со «Спартаком» стал обладателем Кубка России, в финале было обыграно московское «Динамо»[31]. Зобнин наряду с Квинси Промесом и Георгием Джикией стал первым в истории клуба футболистом, кому покорились все три российских трофея[32]. В сезоне 2021/22 сыграл в чемпионате 25 матчей и забил три мяча — в ворота «Урала», «Сочи» и «Арсенала». Впервые в карьере Зобнин забил более двух мячей в чемпионате России.
23 июля 2022 года во втором туре чемпионата России 2022/23 сделал дубль в гостевом матче против «Краснодара» (4:1)[33]. 31 июля 2022 года стал седьмым футболистом в истории, сыгравшим 150 матчей за «Спартак» в чемпионатах России. 14 августа 2022 года сыграл 200-й матч в чемпионатах России. Зобнин стал 185-м футболистом, достигшим этой отметки. 27 августа 2022 года Зобнин сравнял счёт в игре с «Факелом» в Воронеже, в итоге «Спартак» победил 4:1[34]. 30 октября 2022 года в матче 15-го тура чемпионата России против московского «Торпедо» (1:0) Зобнин провёл свой 200-й матч за «Спартак»[35].
31 марта 2015 года в товарищеском матче против Казахстана Зобнин дебютировал за сборную России, выйдя на замену на 22 минуте вместо Василия Березуцкого[36]. 5 июня 2017 года получил травму крестообразной связки и наружного мениска правого коленного сустава в товарищеском матче сборной России против сборной Венгрии[37], 12 июня перенёс операцию в римской клинике[38].
1 июня 2018 года британский журнал «Four Four Two» назвал Зобнина, вошедшего в расширенный список из 28 футболистов, которые были вызваны на сбор российской национальной команды для подготовки к участию в чемпионате мира 2018 года, одним из потенциальных открытий предстоящего чемпионата[39].
Попал в окончательную заявку сборной на домашний чемпионат мира 2018 года и принял участие во всех трёх матчах сборной на групповом этапе — с Саудовской Аравией[40], Египтом[41], Уругваем[42]. По результатам этих матчей сборная России заняла второе место в группе и вышла в плей-офф. В 1/8 сборная России обыграла сборную Испании (1:1, 3:4 по пен.)[43], но в 1/4 проиграла сборной Хорватии (2:2, 3:4 по пен.)[44].
Роман Зобнин женат. С женой Раминой познакомился ещё в Тольятти. 28 апреля в 2016 году у них родился сын Роберт, 3 сентября 2019 года родилась дочь Регина[9][54].