Zemzemi started his career with Tunisian side Club Africain. In January 2018, he transferred for Ligue 1 side Strasbourg for a fee of €200,000, signing a three-and-a-half-year contract, being described by the club as "one for the future".[1] After playing with the B in Championnat National 3 for the second half of the 2017–18 season, he made his first team debut on 19 August 2018, in the Ligue 1 fixture against Saint-Étienne, coming on as a late substitute.[2]
Zemzemi hit the media spotlight after his involvement in a challenge which left Neymar injured during a Coupe de France match between Strasbourg and Paris Saint-Germain in January 2019.[3][4]
In January 2020, having failed to break through to the first team, Zemzemi was loaned back to his former club, Club Africain, until the end of the 2019–20 season.[5] He returned to Strasbourg in July 2020, with the season still paused due to the COVID-19 pandemic, having played just three matches.[6] In August 2020, Zemzemi joined Championnat National side Avranches on loan for the 2020–21 season.[7]
On 5 August 2021, Zemzemi signed for Ligue 2 club Niort.[8] On 20 July 2024, he returned to Club Africain.[9]