At 28 years old, M'Baye Niang has this physical status:
Niang was born in Meulan, a commune in the Yvelines department of the Île-de-France region, to Senegalese parents. He began his football career at the age of seven playing for local club Basse-Seine Les Mureaux. Niang spent two years at the club before being spotted by amateur club Poissy. After hearing of the player through word of mouth, Niang was spotted by professional club Caen scouts Laurent Glaize and David Lasry. Glaize later stated that before scouting the player, he was informed that Niang was possibly a présu, a player claiming to be younger than his actual date of birth. The claim was made primarily because of Niang's height, which stood at 1.75 m (5 ft 9 in) when he was 13 years old. Despite the claim, the scouts continued to pursue Niang, who was also being linked to other professional clubs in France, such as Lille and Paris Saint-Germain.
Niang joined Caen's youth academy at the age of 13 after excelling at a trial, in which he scored a hat-trick. He quickly ascended up the club's youth hierarchy and, by the age of 15, was already featuring with the club's under-19 team. Niang was described by the team's coach Philippe Tranchant as a player with "huge potential" while also stating "we've never seen a player like him at the club before". After spending the second part of the 2009–10 season with the under-19 team, Niang was promoted to the club's reserve team in the Championnat de France amateur, the fourth level of French football, ahead of the 2010–11 season. He made his reserve team debut on 14 August 2010 in a 0–0 draw with Avranches. In the team's ensuing match against Moulins, Niang scored the only goal for the team in a 1–1 draw. On 12 September, he scored both team goals in a 2–2 draw with the reserve team of professional club Lorient. After becoming the team's top scorer after its first six matches, Niang began earning praise from the local media who began predicting when the player would be called up to the senior team. He was also linked to several clubs abroad such as Italian club Juventus and English clubs Manchester City and Tottenham Hotspur - who reportedly offered Caen €8 million for the player.
On 18 February 2011, Niang signed his first professional contract agreeing to a three-year deal with Caen. He was called up the senior team for the first time on 23 April 2011 for the team's league match against Toulouse that was played on the following day. Niang was assigned the squad number 9 shirt and made his professional debut in the match appearing as a second-half substitute as the match ended in a 1–1 draw. At 16 years and 114 days, Niang's appearance in the match made him the youngest player ever to appear for Caen in the club's history. A week later, he made his first professional start in a 4–0 away win over Nice. On 7 May, Niang scored his first professional goal in a 1–1 draw with Lens. The goal made him the second youngest player to score a goal in Ligue 1 behind Laurent Roussey. In the team's next match against Rennes, Niang appeared as a substitute and scored the equalizing goal four minutes after coming on. In the team's final league match of the season against Marseille, he converted the team's second goal, which put Caen 2–0 up. Marseille later scored two unanswered goals to draw the match 2–2. Niang finished the campaign with seven appearances, of which four were starts, and three league goals.
Prior to the start of the 2011–12 season, Niang's professional contract became subject to debate after French newspaper Le Parisien revealed that his father did not agree to the signing of the contract. Due to Niang being a minor, it is required by French law that both parents of the player agree to the contract. Despite reportedly being present during the signing of the contract, Niang's father, through his lawyer, threatened to begin "a procedure for revocation of the contract". Despite the contract issues, Niang remained a Caen player and made his season debut on 13 August 2011 in a 2–1 win over Sochaux. On 24 September, he scored his first goal of the campaign in a 4–2 away win over Evian. Niang's only other goal during the season came in the 1–1 draw away to Nancy.
Before the start of the 2012–13 season, it was reported that Niang had gone on trial with English clubs Arsenal, Everton and Tottenham. On 27 August 2012, it was confirmed that Niang was in negotiations with Italian club Milan after arriving in the city and having dinner with club vice-president Adriano Galliani. On the following day, the move was confirmed on Milan's official website. Niang signed a three-year contract, while the transfer fee was undisclosed.
On 13 December 2012, in the Coppa Italia 5th Round game against Reggina, Niang came on as a substitute and scored with the match ending in a 3–0 win. The goal in the 70th minute put Niang into the history books as the second-youngest goal scorer in Milan history at 17 years and 350 days. On his 18th birthday, Niang signed a contract extension with Milan, keeping him at the club until 2017.
In January 2014, Niang joined Montpellier on loan. He made 19 appearances, scoring 4 goals.
In January 2015, Niang was loaned to fellow Italian club Genoa in the transfer window for the remainder of the season. He went on to score 5 goals in his 14 appearances with Genoa before being sent back to Milan following the injury he sustained.
Niang suffered a fractured metatarsal when Milan faced Bayern Munich in the pre-season Audi Cup tournament, causing him to miss the start of 2015–16 season. He returned to the field in a 0–0 draw against Atalanta. He then scored his first brace in Serie A for Milan as the team cruised past Sampdoria with a 4–1 win on 28 November 2015 at the San Siro.
In January 2016, it was reported that Milan had rejected a €16 million bid from English club Leicester City for Niang. On 31 January, he scored the final goal in the Derby della Madonnina against Internazionale, helping Milan triumph 3–0, then scoring again in a 2–0 defeat of Palermo three days later and at home against Udinese, reaching his personal goal scoring record in a single season. However, he was involved in a car accident in March 2016, which kept him out of the season for almost 2 months. He returned for Milan as a substitute during the final few minutes against Juventus in the Coppa Italia final on 21 May 2016, which was won by Juventus by a scoreline 1–0.
Niang started the first game of the season for Milan in the 2016–2017 campaign in Serie A against Torino F.C., which Milan won 3–2. He started the subsequent game against Napoli on 27 August 2016, which Milan lost 4–2 away from home. Niang managed to get on the scoresheet, but was sent off in the 87th minute for trying to grab Pepe Reina while he was trying to offload the ball.
After suffering a drop in his performance, in January 2017, Niang was sent on loan to English Premier League team Watford. He made his league debut on 31 January 2017 as a starter in a 1–2 away win against Arsenal. On 4 February 2017, Niang scored his first goal for Watford in a 2–1 home win against Burnley. Niang also assisted Troy Deeney's goal in that match.
On 31 August 2017, Niang signed for Torino on a season-long loan deal with obligation to buy.
On 31 August 2018, Niang joined Rennes in Ligue 1 on a season-long loan from Torino.
Niang scored his first goal for his new club in a 1–1 draw with Toulouse on 30 September.
He opened the scoring for Rennes against Olympique Lyonnais in the semi-finals of Coupe de France on 2 April 2019 as they were eventual 3–2 winners after a back and forth game to secure their first appearance in the final since 2014. the Niang converted his penalty kick as Rennes upset league champions PSG in the final of the competition on 27 April, as the club won the cup for the first time since 1971.
On 24 May 2019, the final day of the 2018–19 Ligue 1 campaign, Niang scored twice to bring his league tally to 11 goals on the season, as Rennes defeated Lille 3–1. Five days later, Rennes signed Niang on a permanent deal for a reported fee of €15 million.
Niang scored his team's equalizer as Rennes again stunned PSG with a 2–1 win in the second matchday of the 2019–20 Ligue 1 season.
He scored both of his side's goals, after assists from Brazilian winger Raphinha, in a 2–1 defeat of Angers on 7 December.
On 7 February 2021, Niang joined Al-Ahli Saudi FC on a six-month loan deal with an option to buy.
On 16 August 2022, Niang signed with Auxerre for one season, with an option to extend.
Niang is a France youth international, having represented his nation at under-16, under-17, under-21 level. In December 2009, he earned his first international call-up at under-16 level under coach Patrick Gonfalone for friendly matches against Belgium. Niang made his youth international debut in the first match against Belgium in a 4–1 win. In the second match against Belgium held two days later, he scored the only goal in a 1–0 win. Niang returned to the under-16 team in January 2010 to participate in the 2010 edition of the Aegean Cup in Turkey. In the competition, he appeared in all four matches France contested. He scored two goals; both in group stage victories over the Czech Republic and Romania. France won the competition after defeating the hosts 3–1 in the final to become the competition's two-time defending champions. Afterwards, Niang failed to earn a call-up under Gonfalone at under-16 level, which resulted in the player missing the Montaigu Tournament.
At under-17 level, Niang was among Gonfalone's first call-ups and made his debut at a European tournament in Serbia in the team's opening group stage match against the hosts. In first round qualification for the 2011 UEFA European Under-17 Football Championship, he appeared in all three group stage matches as France finished the round in the second place behind Italy. Despite appearing in the team's first eight matches, Gonfalone did not call Niang up again for the under-17 team. He, subsequently, missed both the UEFA European Under-17 Football Championship and 2011 FIFA U-17 World Cup.
Due to being born in France to Senegalese parents, Niang is eligible to represent the Senegal national team at international level. In May 2011, Senegalese media reported that Niang was named to the Senegal under-23 team to participate in 2011 CAF U-23 Championship qualification matches in June 2011. After this report was deemed inaccurate, in July 2011, it was reported that Niang had announced his desire to represent Senegal at senior international level. Later that month, he was named to the Senegal squad to face Morocco in August. On 4 August, Niang distanced himself from the reports and re-affirmed his desire to represent France at international level. He later stated, "First, I never said that I had chosen Senegal or France. The only words I have spoken is that, for now, I prefer the French youth teams."
On the same day after reaffirming his decision to represent France, Niang bypassed three international levels and was called up to the France under-21 team by coach Erick Mombaerts to participate in a three-day training camp at the Clairefontaine academy. In September 2011, he was called up for the second consecutive time by Mombaerts for a 2013 UEFA European Under-21 Football Championship qualification match against Latvia on 2 September and a friendly against Portugal on 5 September. He made his under-21 debut in the qualifier against Latvia appearing as a substitute in the 72nd minute. After 15 minutes on the field, Niang scored his first goal for the team. France won the match 3–0. In November 2012, Niang was banned from representing the French national team until 31 December 2013 for visiting a nightclub while breaking a night time curfew.
On 7 October 2017, Niang made his debut with Senegal against Cape Verde, in 2018 FIFA World Cup qualification match won 2–0. In May 2018 he was named in Senegal's 23 man squad for the 2018 FIFA World Cup in Russia. On 19 June 2018, he scored a goal against Poland.