VfB Stuttgart in 2013 Werner played for TSV Steinhaldenfeld before joining
VfB Stuttgart's academy in 2002. During the 2012–13 season, he was promoted to the U-19 team despite only being 16-years old at the time. He scored 24 goals that season and was rewarded for his form when he won the Gold U-17
Fritz Walter Medal in 2013. Upon doing so, he became the youngest player to ever play in an official match for Stuttgart at the age of 17 years, four months and 25 days, breaking the record previously held by
Gerhard Poschner. In the following weeks he also became Stuttgart's youngest ever player in the
Bundesliga and in the
DFB-Pokal, and youngest ever goalscorer after netting his first goal for the club against
Eintracht Frankfurt. On his 18th birthday, Werner signed a professional contract until June 2018 with Stuttgart. He went on to score 13 goals in 95 league appearances, during which time he became the youngest player to make 50 Bundesliga appearances in the competition's history. The record was later broken by
Kai Havertz in 2018. Stuttgart were relegated in May 2016 which prompted him to join newly promoted club
RB Leipzig the following month.
RB Leipzig in 2019 On 11 June 2016, Werner agreed to a four-year contract with RB Leipzig for a reported transfer fee of €10 million, the largest in the club's history. He became the youngest player to play in 100 Bundesliga matches when he appeared in a fixture against
1. FC Köln at the age of 20 years and 203 days on 26 September 2016. In doing so, he broke the record previously held by
Julian Draxler by 22 days, although he was again surpassed by Havertz in 2019. Werner ended the
2016–17 Bundesliga season with 21 goals, making him the leading German goalscorer in the division, and helped RB Leipzig qualify for the
UEFA Champions League for the first time in the club's history. In a match against his former club Stuttgart in March 2018, Werner became the youngest player to reach the milestone of 150 Bundesliga appearances, eclipsing the record previously held by
Charly Körbel. Later that month, he helped Leipzig defeat
Bayern Munich for the first time ever when he scored the winning goal in a 2–1 victory. He ultimately went on to score 13 goals and record seven assists for the season. On 7 October 2018, Werner scored his 50th Bundesliga goal in a 6–0 league win over
1. FC Nürnberg. The result was also RB Leipzig's biggest ever win in the competition. The following month, he scored a twice in a 3–0 league win over
Hertha BSC and in doing so recorded the tenth competitive brace of his career. He reached the milestone of 10 league goals for the season on 16 December after scoring twice in a 4–1 win over
Mainz 05. His double against Mainz was his fifth brace of the campaign, meaning that by that stage of season every time he scored in a match he went on to score a brace. He made his 100th appearance for RB Leipzig when he started in a 4–0 league win over
Fortuna Düsseldorf on 27 January 2019. He became the first player to score 50 Bundesliga goals for the club on 4 May when he scored once and assisted another in a 3–3 draw with Mainz. Werner scored his first Bundesliga hat-trick in a 3–1 away victory against
Borussia Mönchengladbach on 30 August 2019. He made his 100th league appearance for the club on 5 October, during a 1–1 draw with
Bayer Leverkusen. At the start of the following month, he scored another hat-trick and recorded three assists to guide Leipzig to an 8–0 win over Mainz, their biggest-ever win in the Bundesliga. On 23 November, he became the youngest ever player to reach the milestone of 200 Bundesliga appearances. In his final match as a Leipzig player on 27 June 2020, Werner scored both of his side's goals in a 2–1 win away to
Augsburg. Hence, he finished his tenure at Leipzig with 95 goals, overtaking
Daniel Frahn to become the club's record goalscorer. He joined the club on 1 July. He made his league debut with the club on 14 September, in a 3–1 away win against
Brighton & Hove Albion. On 29 September, Werner scored his first goal for Chelsea in a 1–1 draw against
Tottenham Hotspur which they lost 4–5 on penalties in the fourth round of the
EFL Cup. On 17 October, Werner scored his first Premier League goals with a brace and assisted Kai Havertz for the third as Chelsea drew
Southampton 3–3 at home. He scored his first Champions League goal for Chelsea, a penalty against Russian side
Krasnodar on 28 October. On 15 February 2021, Werner scored in a 2–0 win over
Newcastle United in the Premier League and ended his 14-game goal drought in the league. On 5 May, he scored the first goal in a 2–0 win over
Real Madrid, to help his team book a place in the Champions League final against fellow Premier League side
Manchester City. On 29 May, he won his first-ever Champions League after Chelsea defeated Manchester City in the
final in
Porto. Werner started the 2021–22 season in the
2021 UEFA Super Cup match against
Villarreal on 11 August 2021, and following a 1–1 draw after extra time, Chelsea won the penalty shoot-out 6–5. He scored his first goal of the season during a Carabao Cup clash against Aston Villa. The match ended 1–1 after regular time and Chelsea eventually won 4–3 on penalties. His first Premier League goal of the season came on 2 October in a 3–1 win against Southampton. On 8 December 2021, Werner scored the fastest goal for Chelsea in their Champions League history, after only 82 seconds away to
Zenit Saint Petersburg. He also scored a second goal in the 3–3 draw away to Zenit. On 12 April 2022, he scored the third goal for Chelsea to be 3–0 ahead away to Real Madrid in the second leg of the Champions League quarter-finals; however, Real Madrid managed to score a goal later on, then another goal in extra time, to qualify eventually to the semi-finals by winning 5–4 on aggregate.
Return to RB Leipzig On 9 August 2022, Werner re-signed for Bundesliga club RB Leipzig on a four-year contract for a reported fee of £25.3 million. On 13 August, Werner made his return debut in a 2–2 draw against Köln. He also scored, firing a dipping shot from outside the box at Köln goalkeeper
Marvin Schwäbe, who let it slip through his hands to give Leipzig the opener in the 36th minute. On 1 October 2022, Werner scored a brace against
Bochum to score his 100th and 101st goals in 169 matches in all competitions for Leipzig. This made him the first player to score a century of goals for the club. Werner scored his 100th Bundesliga goal on 15 April 2023 in a 3–2 victory over
Augsburg.
Loan to Tottenham Hotspur On 9 January 2024, Werner joined Premier League club Tottenham Hotspur on loan until the end of the
2023–24 season, with an option for the transfer to become permanent at the end of the season. He made his debut for the club on 14 January, assisting
Rodrigo Bentancur's equaliser in a 2–2 draw against
Manchester United at
Old Trafford. He scored his first goal for the club on 2 March in a 3–1 home win over
Crystal Palace. Werner scored for his second game in a row, netting the final goal in a 4–0 away win over
Aston Villa from the bench. Later that year in late May, Tottenham extended Werner's spell for a season-long loan with an option to buy clause in the region of £8.5 million. Werner scored his only goal of the
2024–25 season on 30 October during the
EFL Cup tie against Manchester City, which Tottenham went on to win 2–1 to advance to the quarter-finals. On 12 January 2025, he suffered a
hamstring injury during the
FA Cup tie against
Tamworth. Since then, Werner was cut from the
Europa League playing squad and has made the Tottenham matchday squad on a single occasion, playing 8 minutes of the 1–0
Premier League defeat against Manchester City in February. On 21 May, Werner was awarded Europa League winner's medal after Tottenham beat
Manchester United in
the final. Werner's loan spell with Tottenham ended on 31 May 2025. RB Leipzig's top earner, with €10 million-a-year contract running until June 2026, Werner was not part of the club's plans. They wanted him to leave during the summer transfer window, but Werner couldn't agree to terms with clubs that expressed interest. During the
2025–26 season, Werner made the RB Leipzig matchday squad twice, playing a single minute as a substitute in September.
San Jose Earthquakes On 29 January 2026, Werner signed for the
San Jose Earthquakes in
Major League Soccer on a deal until 2028, joining the side as a
Designated Player. He scored his first goal for the Earthquakes on 19 April in a 4–1 win over
Los Angeles FC. On 25 April 2026, Werner became the first player in the club's history to have at least one goal and one assist in three consecutive matches. ==International career==