Ben Yedder was born in Sarcelles, Île-de-France, of Tunisian descent. Among his childhood friends was Riyad Mahrez.
Ben Yedder began his career at local UJA Alfortville in the fourth-tier Championnat de France Amateur, before moving to Toulouse of Ligue 1 in 2010.
On 16 October 2010, he made his professional debut in a 0–2 home loss to Paris Saint-Germain, replacing Yannis Tafer for the final 29 minutes. He made 13 substitute appearances across his first two seasons, and scored his first goal for Toulouse on 21 April 2012: ten minutes after coming on in place of Paulo Machado, he equalised in an eventual 2–1 loss at Evian.
In the following three Ligue 1 campaigns, Ben Yedder recorded 15, 16 and 14 goals respectively. On 10 August 2012, in the first game of the season, he came on at half time for Pantxi Sirieix and equalised for a 1–1 draw at reigning champions and local rivals Montpellier. In the reverse fixture, the last of the campaign, on 26 May 2013, he scored both goals in a win over Montpellier.
On 30 November 2013, Ben Yedder scored a hat-trick in a 5–1 home win over Sochaux. He recorded another treble on 17 May 2014 as Toulouse finished the season with a 3–1 win over Valenciennes.
Ben Yedder scored a penalty in a 3–3 draw against Caen on 20 September 2014. In doing so, he reached 35 Ligue 1 goals for Toulouse, surpassing André-Pierre Gignac as their highest scorer in the league in the 21st century. He attained the milestone of 50 goals in the competition on 19 December 2015, when he put them ahead in a 1–1 home draw against Lille. The following 9 January, he scored another hat-trick in a 3–1 win at fellow strugglers Reims.
On 30 July 2016, Ben Yedder signed a five-year contract with Spanish club Sevilla, for a reported €9 million fee. After being an unused substitute in their UEFA Super Cup loss to Real Madrid on 9 August, he made his debut five days later, replacing fellow new signing Luciano Vietto for the final 29 minutes of a 0–2 loss to Barcelona in the first leg of the year's domestic equivalent. On 20 August, he started in his first La Liga game and scored a goal in a 6–4 victory over Espanyol at the Ramón Sánchez Pizjuán Stadium.
Ben Yedder scored five goals across Sevilla's 14–2 aggregate Copa del Rey win over Tercera División club Formentera in December 2016, including a hat-trick in the 9–1 home victory in the second leg. This haul made him the tournament's top scorer that season, alongside Barcelona's Lionel Messi. On 7 January 2017, he registered a hat-trick in a 4–0 La Liga win at Real Sociedad.
In Sevilla's UEFA Champions League campaign in 2017–18, Ben Yedder scored all three goals in a group stage victory over Slovenia's Maribor on 26 September, his first hat-trick in the competition. On 21 November, after scoring twice as Sevilla came from a 0–3 deficit at half time to draw with Liverpool, he taunted A.C. Milan – who lost the 2005 UEFA Champions League Final to Liverpool in a similar fashion – over Twitter. On 13 March 2018, in the second leg of the 2017–18 UEFA Champions League round of 16 against Manchester United at Old Trafford, Ben Yedder came on as a substitute in the 72nd minute and scored two goals in the span of 4 minutes to help secure a 2–1 win and enable Sevilla to reach the quarter-finals of the UEFA Champions League for the first time since 1958, and for the first time ever in the Champions League era.
In September 2018, Ben Yedder scored five goals in the space of three days, with two in a 5–1 Europa League home win against Standard Liège and a hat-trick in a 6–2 La Liga away victory against Levante.
On 14 August 2019, Ben Yedder signed with Monaco on a five-year contract after they activated his release clause of €40 million, a record sale for Sevilla. Rony Lopes transferred in the other direction. He made his debut three days later, starting alongside fellow debutant Henry Onyekuru and pushing Radamel Falcao to the substitutes' bench in a 3–0 loss away to Metz. On 25 August, he scored his first goal for the club in his first game at the Stade Louis II in a 2–2 draw with Nîmes.
In December 2019, Ben Yedder won the UNFP Player of the Month award with four goals and two assists in four games, including two in a 5–1 home win over Lille on 21 December. His first season in the principality was curtailed in early March 2020 due to the coronavirus pandemic, but he finished as joint top scorer alongside PSG's Kylian Mbappé with 18 goals from 26 games, a new record for him in Ligue 1.
In 2020–21, Ben Yedder helped Monaco finish as runners-up in the Coupe de France, scoring in wins over Lyon and Rumilly-Vallières in the quarter-final and semi-final. On 2 May 2021, he scored his 100th goal in Ligue 1 in a 2–3 home defeat against the former. He finished the season as second-highest scorer behind Mbappé's 27 goals, joint with Lyon's Memphis Depay on 20.
Ben Yedder played two futsal matches for France, scoring once, and also represented the nation nine times at under-21 level.
As Ben Yedder's parents' come from Tunisia and therefore he would qualify to represent that nation in international football under FIFA regulations, the Tunisian Football Federation made five attempts to get him to represent their team. In October 2017, after he turned down their offer to get him into the squad before the 2018 FIFA World Cup, they admitted defeat.
In March 2018, after playing well for Sevilla, France manager Didier Deschamps included Ben Yedder in the squad for two friendly matches against Colombia and Russia. He made his debut in the 3–2 loss to the Colombians on 23 March at the Stade de France, replacing Olivier Giroud for the final 17 minutes. On 17 May, he was named on the standby list for the 23-man French squad for the World Cup.
On 11 June 2019, Ben Yedder made his first start for the France senior team and scored his first senior international goal, in the 4–0 away win over Andorra in a UEFA Euro 2020 qualifying match. In May 2021, he was selected for the delayed finals.