Вихованець кількох барселонських клубів. На юнацькому рівні більшу частину кар'єри провів в «Барселоні». 3 жовтня 2015 року Перес дебютував у матчі за резервну команду, вийшовши на заміну в другому таймі замість Максі Ролона у виїзній грі Сегунди Б проти «Леванте Б» (0:0)[1]. 19 серпня 2017 року в поєдинку проти «Реал Вальядоліда» (2:1) Перес дебютував за цю команду в Сегунді[2].
19 травня 2019 року в матчі проти «Ейбара» Перес дебютував за основну команду «Барселони» в Ла Лізі, замінивши в другому таймі Малкома. У своєму дебютному сезоні Перес став чемпіоном Іспанії. 25 серпня в поєдинку проти «Реал Бетіса» Карлес забив свій перший гол за «Барселону»[3].
30 січня 2020 року перейшов в італійську «Рому» на правах оренди до 30 червня 2020 року з обов'язковим правом викупу[4]. Через два дні він дебютував у складі «джаллороссі» у виїзній грі проти «Сассуоло» (2:4)[5]. 2022 року Перес допоміг команді виграти дебютний розіграш Ліги конференцій, зігравши в тому турнірі у 8 іграх, але у фінальному матчі проти «Феєнорда» (1:0) залишився на лаві запасних[6]. Загалом протягом двох з половиною років відіграв за «вовків» 71 гру в усіх турнірах.
9 серпня 2022 року повернувся на батьківщину, приєднавшись на умовах оренди з правом викупу до клубу «Сельта Віго».
Виступи за збірні
У 2015 році Перес потрапив в заявку юнацької збірної Іспанії на участь в юнацькому чемпіонаті Європи в Болгарії. На турнірі він зіграв у матчах проти збірних Австрії, Болгарії, Хорватії, Німеччини та Англії.