Роман Шишкин родился в Воронеже 27 января 1987 года. Футболом начал заниматься в школе «Факела». Дважды пытался поступить в академию столичного «Спартака». Вторая попытка оказалась успешной, и к 17 годам защитник дорос до дублирующего состава «красно-белых». В этом же возрасте дебютировал в основной команде, но вскоре вернулся в «молодежку» из-за подписания более мастеровитых иностранных футболистов на его позицию.
В 19 лет спортсмен попал в стартовую обойму, также его пригласили принять участие в тренировочном процессе сборной России. Три года спустя воронежскому воспитаннику перестали доверять и отправили в самарские «Крылья Советов» в аренду. Удачно отыграв за новый клуб, игрок получил приглашение от «Локомотива» и перешел в стан «железнодорожников» на постоянной основе.
В составе «красно-зеленых» защитник провел семь лет, став капитаном команды. В сезоне-2016/2017 воронежец проиграл конкуренцию на правом фланге обороны и покинул «Локо». Опытный футболист отправился в «Краснодар». Однако и там не получилось попасть в основу, эту позицию занял более молодой Сергей Петров. После возвращения в «Крылья Советов» на правах аренды Шишкина позвали в «Торпедо», которое поставило задачу выхода в Премьер-лигу. С московским клубом спортсмен заключил однолетний контракт.
За сборную России провел 16 матчей.