Народився в місті Новий Розділ, Львівська область. Вихованець ДЮСШ рідного міста, перший тренер — Віктор Паврозник[1]. У ДЮФЛУ з 2016 по 2019 рік виступав за «УФК-Карпати». У другій половині сезону 2019/20 років грав за юнацьку команду «зелено-білих», а також залучався й до матчів молодіжної команди. За першу команду «Карпат» дебютував 30 серпня 2020 року в програному (0:4) виїзному поєдинку кубку України проти дунаївцівського «Епіцентру». Віталій вийшов на поле на 60-ій хвилині, замінивши Владислава Мудрика[2]. У Другій лізі України дебютував 19 вересня 2020 року в переможному (4:1) домашньому поєдинку 3-го туру групи А проти «Чернігова». Роман вийшов на поле на 63-ій хвилині, замінивши Владислава Мудрика[3]. Цей матч виявився останнім у футболці «левів», у складі яких зіграв по 1-му матчі в Другій лізі та національному кубку.
У жовтні 2020 року підписав контракт з «Рухом». У футболці львівського клубу дебютував 21 серпня 2021 року в програному (0:2) виїзному поєдинку 5-го туру Прем'єр-ліги проти дніпровського «Дніпра-1». Віталій вийшов на поле в стартовому складі, а на 73-ій хвилині його замінив Орест Кузик[4]. Восени 2021 він встиг зіграти за основну команду (6 матчів), за дубль «Рух-2» в обласній Прем'єр-лізі[5] та 8 матчів за команду U-19, з якою навесні 2022 він здобув золоті медалі юнацького чемпіонату України.
У 2022 році Роман закріпився в основному складі «Руху» та увійшов до п'ятірки найкращих молодих гравців U-19[6]. Протягом 2023 року зарекомендував себе як один з найкращих флангових захисників чемпіонату України, причому навесні Віталій грав на рідній йому позиції правого захисника, а після повернення з оренди Олексія Сича восени показував високу якість гри як лівий захисник. Зокрема, за підсумками першої половини сезону 2023/24 він став другим за рейтингом Wyscout серед флангових захисників, поступившись лише Івану Дібанго з «Кривбасу», став найкращим фланговим захисником за кількістю передач та увійшов до п'ятірки найкращих гравців усіх амплуа за передачами в розріз та ривками з просуванням[7].