Youth career Mastour was born to
Moroccan parents in
Reggio Emilia,
Italy. He began playing at his hometown club
AC Reggiana, and in early 2012, at the age of 13, he featured for
Inter Milan in youth tournaments despite rules prohibiting him from leaving Reggiana until his next birthday. In January of that year, he scored five goals in the Ielasi Memorial tournament, including one in the final against
A.S. Roma. After approaches from
Juventus,
FC Barcelona,
Real Madrid, and
Manchester City, Mastour moved to Inter's
city rivals AC Milan on the recommendation of former manager
Arrigo Sacchi, for a fee of €500,000. but did not come off the bench in the 2–1 win over
Sassuolo at the
San Siro on 18 May.
Loan to Malaga On 31 August 2015, Mastour was loaned to Spain's
Málaga CF for two seasons, at the exclusive request of club owner
Abdullah al-Thani; as a minor, his transfer to another country had to be approved by
FIFA, which was not completed until 5 November. He was first included in a matchday squad for the
La Liga home fixture against fellow
Andalusians
Real Betis two days later, making his competitive club debut in the eventual 0–1 loss by playing five minutes as a
substitute for compatriot
Adnane Tighadouini. On 7 July 2016, after making one appearance all season, Málaga opted to rescind Mastour's loan contract, and he returned to Milan.
Loan to Zwolle On 14 July 2016, Mastour joined Dutch club
PEC Zwolle on a season-long loan. He made his
Eredivisie debut on 13 August, replacing fellow Moroccan
Youness Mokhtar for the final 17 minutes of a 0–3 home loss to
Sparta Rotterdam. Despite initial reports suggesting his contract was expired, Mastour actually returned to Milan at the end of the loan spell, having one year left in his contract.
Lamia On 4 September 2018,
Super League Greece club
Lamia officially announced the signing of Mastour on a free transfer, on a contract worth €200,000 per year. He was reported absent in December, and the following February his father confirmed that this was due to an injury that he alleged was not being treated by the club. Following six goalless appearances in seven months, his deal was terminated by mutual consent on 4 March 2019. The following month, he trained with
Parma.
Reggina and loan to Carpi Mastour signed a three-year contract with
Serie C side
Reggina on 18 October 2019. He made his debut on 22 January 2020, as an 81st-minute substitute in a 2–1 home loss to
Virtus Francavilla. On 14 January 2021, after playing the first half of the campaign with Reggina, he was loaned out to Serie C club
Carpi until the end of the season. On 24 January, he scored his first professional goal in a 5–1 defeat against
Sambenedettese.
Renaissance Zemamra and Kings League After being clubless since July 2021, Mastour signed for Moroccan side
Renaissance Zemamra in the
Botola 2 on 28 June 2022. He scored on his debut for the club, in a 3–1 win against
Jenuesse Ben Guerir on 11 September. In November 2024, he was announced as a wild card for the
Kings League team
FC Zeta Milano.
Virtus Verona On 27 June 2025, Italian
Serie C club
Virtus Verona announced that they had signed Mastour as a free transfer, on a one-year contract with an extension option for one further season. ==International career==