Cyprien began his youth career at Paris FC, before moving to Lens in 2008. He is a graduate of the Lens youth academy and made his debut for the first team in 2012. He passed through the youth ranks in July 2012. He helped Lens win promotion to Ligue 1, following a second place finish during the 2013–14 Ligue 2 season. The following campaign, Cyprien scored two goals and set up a further two, as Lens finished last and went straight back down to the second division. He made over 100 appearances for Lens, before his transfer to Nice in 2016.
Nice
On 27 July 2016, Ligue 1 club Nice reached an agreement with Lens for the transfer of Cyprien. The transfer fee was a reported €5m. He made his debut for the club on the opening day of the Ligue 1 season, coming on as a second-half substitute for Vincent Marcel in a 1–0 victory over Rennes. Cyprien's first goal for the club came in the Europa League on 29 September 2016, a consolation goal in his side's 2–5 defeat to Russian club Krasnodar in the group stage of the competition. On 10 March 2017, Cyprien picked up an ACL injury in a Ligue 1 match against SM Caen, a game that finished 2–2, and he was ruled out a day later for the remainder of the season. Cyprien spent much of the first-half of the 2017–18 campaign on the sidelines and he eventually appeared in just 946 minutes of Ligue 1 action. On 2 March 2018, Cyprien assisted Mario Balotelli's opening goal and scored the winning goal with a volley in Nice's Ligue 1 2–1 home win over Lille OSC.
2019–20 season
Cyprien made his season debut in the first round of Ligue 1 fixtures against Amiens on 10 August 2019, assisting Dante's winning goal in the fifth minute of second-half stoppage time. A week later, he scored his first goal of the season, converting from the penalty spot, before assisting Ignatius Ganago for the game winning goal over Nîmes. On 18 October, Cyprien picked up two yellow cards and was sent off in a 1–4 home loss to reigning champions PSG. Two months later on 7 December, Cyprien scored two goals and earned man of the match honours as Nice defeated FC Metz in the 17th round of Ligue 1 fixtures by a score of 4–1.
International career
Cyprien has been a France youth international, representing his country at U16, U18, U19, and U21 levels.