Early career M'Vila began his football career at age six for ES Sains-Saint-Fussien. He spent three years at the club and, in July 1999, joined the biggest club in the region,
Amiens SC. M'Vila joined the club as a youth player and practised in the club's soccer school, which was established by his father, who had previously played on the club's reserve team. He spent the entire season playing on the club's reserve team in the
Championnat de France Amateur in the fourth division before being officially promoted to the senior squad and assigned the number 15 shirt for the
2008–09 season. Due to having minor surgery on his
toenail and his attitude being questioned by manager
Guy Lacombe, M'Vila missed significant practice time with the senior team and began the season with the club's Championnat de France Amateur team for the second consecutive year. Despite Lacombe questioning the player's attitude, M'Vila has declared that he bears no ill feelings towards Lacombe. He subsequently appeared in 20 matches with the reserve team and scored no goals as the team finished first among professional clubs in its group, thus qualifying for the
play-offs, where the club lost to
Lyon in the semi-finals. Following a successful international campaign with the
France under-19 team, on 13 August 2009, new manager
Frédéric Antonetti announced that M'Vila would be earning some significant playing time with the club for the
2009–10 season. Two days later, after appearing with the CFA team in the first week of the season, he was named to the 19-man squad to face
Nice. He made his professional debut in that match appearing as a substitute in the 80th minute. Due to the suspension of Japanese
midfielder Junichi Inamoto, M'Vila earned his first start the following week against
Marseille. He played the entire match, which ended 1–1. The following week against
Lens, M'Vila earned his first professional
red card. After returning from suspension, M'Vila never lost his place within the team breaking the starting eleven in all the remaining league matches, save for one. against
Cannes in 2011 On 15 September 2009, M'Vila signed a contract extension with Rennes until June 2013. On 27 August 2010, he agreed to another extension with the club. The new deal extends until 2014. Due to his performances domestically and internationally, M'Vila was linked to Spanish club
Real Madrid and English club
Liverpool during the fall season. In December 2010, the midfielder quelled the interest by declaring his commitment to Rennes and also jokingly stating that he would only depart Rennes after scoring his first goal. Coincidentally, he scored his first professional goal on 9 January 2011 in a 7–0 hammering of
Championnat National club
Cannes in the
Coupe de France. A week later, M'Vila scored his first career league goal in a 4–0 win over
Arles-Avignon. On 20 February, M'Vila scored the opening goal for Rennes, converting a free kick, in a 2–1 win over
Toulouse. M'Vila was rewarded for his performances during the season with a nomination for the UNFP Ligue 1 Young Player of the Year. The midfielder lost out on the award to national team teammate
Mamadou Sakho, but was given consolation with an appearance on the organisation's Team of the Year. A day later, Rennes confirmed on its website that M'Vila had signed a one-year contract extension with the club. The new deal will keep him with Rennes until 2015. M'Vila opened the
2011–12 season making his
European debut in a
UEFA Europa League third qualifying round first leg tie against Georgian club
Metalurgi Rustavi on 28 July 2011. M'Vila played the entire match in a 5–2 win. On 25 August, he scored his first and only goal of the campaign in a 4–0 second leg win over Serbian club
Red Star Belgrade in the Europa League play-off round. On 15 September, M'Vila
captained Rennes for the first time in a 1–1 league draw with Nancy. He finished the campaign appearing in a career-high 50 matches, which included all 38 league contests, as Rennes finished in sixth place. Despite consistently appearing with the team, as the season progressed, M'Vila was subjected to criticism from the club's supporters due to his under-performance as perceived by them. The criticism culminated on 11 April 2012 following the midfielder's performance in Rennes' shock 2–1 defeat to semi-professional club
Quevilly in the semi-finals of the
Coupe de France. In the team's ensuing match against Nice, M'Vila was jeered by the club's support. The midfielder was defended by his coach Antonetti, who declared, "We demand a lot from M'Vila. But, we forget that he has already given so much to the club," while also joking that M'Vila "touched the ball so much that they [supporters] couldn't keep up. It made me smile a little".
Rubin Kazan On 22 January 2013, it was announced that Rennes had accepted an offer in the region of €12 million from
Rubin Kazan for M'Vila. M'Vila went AWOL during the 2013–14 winter break, failing to join Rubin Kazan's training camp in Turkey and instead returning to France. This caused a dispute with coach
Rinat Bilyaletdinov.
Inter Milan (loan) On 15 July 2014, M'Vila joined
Inter Milan on
loan from Rubin Kazan until the end of the
2014–15 season with an option to purchase the player on a permanent basis. He made his
Serie A debut on 31 August as they began the season with a goalless draw at
Torino; he was substituted after 56 minutes for fellow debutant
Dani Osvaldo. On 25 January, it was announced that the loan had been terminated and therefore M'vila returned to Kazan following a disagreement with new Inter manager
Roberto Mancini. M'Vila spent a period training with
Dynamo Moscow, but did not officially sign for the Russian club after a dispute resulting in the trashing of his Moscow home. He made his first appearance for the club in an under-21 match against
Norwich City, but was sent off after 69 minutes for a head-butt on
Jamar Loza. On 29 August 2015, M'Vila scored his first Sunderland goal, a long range free-kick against
Aston Villa. On 25 October 2015, M'Vila was named the Premier League man of the match in Sunderland's 3–0 home victory over
Newcastle United in the
Tyne-Wear derby. He subsequently described the atmosphere of the match as the best he had played in, eclipsing that of the
Milan Derby. After another man of the match performance in a 3–1 defeat at
Arsenal on 5 December 2015, M'Vila was praised by teammate
Ola Toivonen, who described him as "a top European player. As he plays more games he's going to show that he's the top player we know he is". In February 2016, M'Vila expressed his desire to stay at Sunderland on a permanent basis, provided the 'Black Cats' avoided relegation. He also hoped to reach an agreement with Rubin Kazan to terminate his contract, which was running until December 2016. M'Vila ultimately finished the season with 37 league appearances for Sunderland, as they ultimately secured survival with a 3–0 home victory over
Everton on 11 May 2016. Manager
Sam Allardyce confirmed both club and player were keen to make the move permanent. On 1 September 2016, M'Vila took his frustrations to
Instagram, after the club rejected to sign the player by not picking up the phone. M'Vila was a fan favourite during his time in the North East, which caused an angry repost towards Sunderland club owner
Ellis Short.
Return to Rubin M'Vila played his first game for Rubin in two years upon the return from loans on 22 September 2016 when he came on as a substitute in a
Russian Cup matchup against
Chita. Rubin manager
Javi Gracia chose to play
Alex Song over M'Vila at the defensive midfield position in all the
league games up to that point. M'Vila returned to league action for Rubin on 2 October 2016, when he was a late substitute in a game against
Krasnodar. In Rubin's next match, against
Krylia Sovetov Samara on 15 October, M'Vila returned to the starting line-up, pushing Song to the bench. On 26 December, M'Vila signed a three-and-a-half-year contract extension with Rubin that was expected to run until the summer of 2020.
Saint-Etienne On 12 January 2018, M'Vila was released from his Rubin Kazan contract, before signing for
Saint-Étienne until the summer of 2019.
Olympiacos On 13 September 2020, M'Vila signed a three-year contract with
Super League Greece club
Olympiacos.
West Bromwich Albion On 19 February 2024, English side
West Bromwich Albion announced the signing of M'Vila until the end of the 2023–24 season, thus rejoining his former coach at Olympiacos,
Carlos Corberán. On 22 May 2024, the club announced he would be leaving in the summer when his contract expired.
Caen On 6 August 2024, M'Vila joined
Ligue 2 club
Caen on a two-year deal. ==International career==