Born in Flers, he primarily plays as an attacking midfielder and was promoted to the senior team of Caen for the 2010–11 season.[3] Moulin made his professional debut on 11 September 2010 in a league match against Auxerre.[4] On 1 February 2011, he signed his first professional contract after agreeing to a three-year deal with Caen.[5]
Following the expiration of his contract with Clermont Foot, Moulin joined Belgian club Waasland-Beveren in the summer transfer market of 2015.[7] In Belgium in his first season played 33 games(4 goals and 10 assists).
His superb appearances brought the interest of Polish club Legia Warsaw. In Poland, Moulin in his first season had 45 appearances (3 goals and 7 assists) having as a teammate PAOK winger Aleksandar Prijovic. His highlight with Legia Warsaw was a remarkable goal against giants Real Madrid, after Prijovic's assist in an UEFA Champions League. At the end of the season he won the Polish championship, being even decisive on the road to the title. In the first half of the 2017–18 season, he played in 26 games (3 goals, 1 assist).
PAOK
On 31 January 2018, just before the end of the transfer window, PAOK FC reached an agreement with Legia Warsaw for the transfer of Moulin. PAOK paid a transfer fee fee €1.3 million Moulin signing a three-year contract worth €600,000 per year.[8]
On 17 August 2018, after making just official appearances in the domestic competitions during the second half of the 2017–18 season, Moulin joined MKE Ankaragücü on a season-long loan.[9]
On 30 August 2019, Moulin joined Xanthi on a season-long loan.[10]
Career statistics
Club
As of 9 June 2024
Appearances and goals by club, season and competition