Werner stroomde door vanuit de jeugd van VfB Stuttgart. Hiervoor debuteerde hij op 1 augustus 2013 in het eerste elftal, in een voorrondewedstrijd van de Europa League uit tegen Botev Plovdiv.[3] Hij was op dat moment 17 jaar, vier maanden en 25 dagen oud. Daarmee werd hij de jongste debutant ooit voor VfB Stuttgart. Werner debuteerde op 17 augustus 2013 in de Bundesliga, in een met 0–1 verloren wedstrijd thuis tegen Bayer Leverkusen.[4] Zijn eerste doelpunt in de Bundesliga volgde op 22 september 2013, de 1–1 thuis tegen Eintracht Frankfurt. Dit was tevens de eindstand.[5] Werner werd door VfB Stuttgart-coach Thomas Schneider vaak als linksbuiten gebruikt. Hij zette op 6 maart 2014 – zijn achttiende verjaardag – zijn handtekening onder zijn eerste profcontract, dat hem tot medio 2018 aan VfB Stuttgart verbond.
Werner speelde in zijn debuutseizoen dertig competitiewedstrijden, waarvan zestien vanaf het begin. Hij maakte dat jaar vier doelpunten, waarvan twee in één wedstrijd tegen SC Freiburg. Hij kwam ook twee keer in actie in de Europa League. Werner schipperde in het seizoen 2014/15 tussen de basis en invalbeurten en werd in 2015/16 definitief basisspeler bij Stuttgart. Dat degradeerde aan het eind van die jaargang naar de 2. Bundesliga. Werner daalde niet mee af.
RB Leipzig
Werner verruilde VfB Stuttgart in juli 2016 voor RB Leipzig, dat in het voorgaande seizoen was gepromoveerd naar de Bundesliga. Het betaalde een bedrag van 6 miljoen euro voor hem, dat door bonussen zou kunnen oplopen tot 12,5 miljoen euro.[6] Coach Ralph Hasenhüttl gaf hem direct een basisplaats in een systeem met twee aanvallers, naast Yussuf Poulsen. Werner maakte dat jaar 21 doelpunten in 31 competitiewedstrijden. RB Leipzig en hij eindigden mede hierdoor in het eerste jaar na promotie op de tweede plaats in de eindstand. Zodoende maakte Werner een seizoen later ook zijn debuut in de UEFA Champions League, thuis tegen AS Monaco (1–1). Zijn eerste doelpunt in dit toernooi maakte hij op 1 november 2017, de 1–1 in een met 3–1 verloren groepswedstrijd uit bij FC Porto.
Werner maakte op 30 augustus 2019 voor het eerst in zijn profcarrière een hattrick. Hij zorgde toen voor zowel de 0–1, 0–2 als 1–3 in een met diezelfde cijfers gewonnen competitiewedstrijd uit bij Borussia Mönchengladbach. Hij maakte op 2 november 2019 zijn tweede. Hij maakte toen zowel het tweede, derde als achtste doelpunt in een met 8–0 gewonnen competitiewedstrijd thuis tegen FSV Mainz 05.
Chelsea
In juli 2020 tekende Werner een vijfjarig contract bij Chelsea, waarmee een bedrag van ongeveer 53 miljoen euro was gemoeid. Werner maakte op 14 september 2020 zijn competitiedebuut in de met 1–3 gewonnen uitwedstrijd tegen Brighton & Hove Albion. In twee seizoenen werd Werner nooit onbetwist basisspeler bij Chelsea. Hij haalde bovendien nooit de doelpuntenaantallen die hij in Duitsland haalde, wat hem op veel kritiek kwam te staan in Engeland. In augustus 2022 nam Chelsea afscheid van Werner, die terugging naar zijn oude ploeg. Hij kwam in Londen uiteindelijk tot 23 goals en 21 assists in 89 wedstrijden.
Terug bij RB Leipzig
Op 9 augustus 2022 werd bekend dat Werner terugkeerde naar RB Leipzig, dat 20 miljoen euro betaalde voor de Duitser, ruim 30 miljoen minder dan zijn verkoopbedrag twee jaar eerder. Hij tekende bij Leipzig een contract voor vier jaar tot de zomer van 2026 en had bij Leipzig het doel om zich in de kijker te spelen voor het naderende WK Voetbal in Qatar. In zijn eerste seizoen terug in Duitsland kwam hij in alle competities tot zestien doelpunten in veertig wedstrijden. In het seizoen 2023/24 was hij niet langer meer basisspeler en was hij vooral wisselspeler achter Loïs Openda en Yussuf Poulsen. Hij had halverwege het seizoen slechts tweemaal gescoord in veertien wedstrijden en begon slechts vier keer in de basis.
Tottenham Hotspur
In de winter van 2024 werd hij voor een halfjaar verhuurd aan Tottenham Hotspur, dat tevens een optie tot koop heeft bedongen. Tottenham had onder meer door de deelname van sterspeler Son Heung-min aan de Azië Cup behoefte aan extra aanvallers. De veelzijdigheid van Werner, hij kan spits én linksbuiten spelen, was daarom aantrekkelijk voor Tottenham.
Werner maakte zestien doelpunten in achttien wedstrijden in Duitsland –17. In 2012 nam hij met Duitsland –17 deel aan het Europees kampioenschap –17 jaar in Slovenië. Werner debuteerde in 2013 in Duitsland –19, waarvoor hij vijf doelpunten maakte in zes interlands. In 2015 debuteerde hij in Duitsland –21
Werner debuteerde op woensdag 22 maart 2017 in het Duits voetbalelftal, tijdens een met 1–0 gewonnen oefeninterland in het Signal Iduna Park tegen Engeland. Deze ontmoeting fungeerde als afscheidswedstrijd voor Lukas Podolski als international. Werner nam in juni 2017 met Duitsland deel aan de FIFA Confederations Cup 2017, die werd gewonnen door in de finale Chili te verslaan (1–0). Hij maakte tijdens de met 3–1 gewonnen groepswedstrijd tegen Kameroen zowel zijn eerste (de 2–0) als zijn tweede doelpunt (de 3–1) voor de nationale ploeg. Hij scoorde ook in de halve finale tegen Mexico.
Werner maakte eveneens deel uit van de Duitse selectie die onder leiding van bondscoach Joachim Löw deelnam aan het WK 2018 in Rusland. Hier strandde Duitsland, voor het eerst sinds het WK 1938, in de groepsfase, na nederlagen tegen Mexico (0–1) en Zuid-Korea (0–2). In groep F werd alleen van Zweden (2–1) gewonnen. Werner was basisspeler in alle drie de wedstrijden.