Born in Munich, Wagner scored his first goal for Bayern Munich in a 2–0 victory over VfB Stuttgart in the 2007 Ligapokal, a six team pre-season tournament composing of the top four Bundesliga teams, the winners of the German Cup and the first-place team from the 2. Bundesliga. Wagner started the match in place of the ill Miroslav Klose. He assisted the first goal of the match for Franck Ribéry and scored himself in the 66th minute.
On 10 June 2008, Wagner moved to MSV Duisburg before signing for SV Werder Bremen on 31 January 2010. In two years playing for Werder, he made thirty Bundesliga appearances, scoring five times.
On 19 January 2012, Wagner was loaned to 1. FC Kaiserslautern.
On 8 August 2015, Wagner signed for SV Darmstadt 98.
On 30 June 2016, Wagner joined fellow Bundesliga club 1899 Hoffenheim by signing a contract until June 2019. He was presented the same day, and took squad number 14, stating: “Hoffenheim are a great club and their ambition impressed me straight away.”
He made his competitive debut with the team on 28 August 2016 in the opening Bundesliga matchday against newcomers of RB Leipzig which ended in a 2–2 home draw. He opened his scoring account in the second matchday against Mainz 05, netting his team's first goal as Hoffenheim came from three goals down to earn a 4–4 away draw.
On 31 March 2017, he had his finger dislocated after a clash with Hertha captain Vedad Ibišević, nevertheless he went on to play until the end of the match, also assisting Andrej Kramarić for the third goal in an eventual 1–3 away win. Wagner finished his first Hoffenheim season by netting 11 league goals in 31 appearances, 30 of them as starter, adding two cup appearances and one goal, being important for Julian Nagelsmann's side that finished the league undefeated at home, securing a spot in Champions League play-off round for next season.
On 9 July 2017, Wagner agreed a contract extension, adding one more year to his current contract.
He has earned 8 caps for Germany at Under 21 level, scoring four goals, including two in the final of the 2009 UEFA European Under-21 Football Championship in Sweden where Germany beat England 4–0.
In June 2017, Wagner received his first call-up to the senior national team for a friendly against Denmark and a FIFA World Cup qualifying match against San Marino. He made his competitive debut on 6 June in the 1–1 away draw against Denmark, playing for more than 60 minutes. Four days later, he scored a hat-trick as Germany thrashed 7–0 San Marino. His performance was praised by national team manager Joachim Löw.
Wagner was also part of the 2017 FIFA Confederations Cup which ended in conquest. His first and only appearance came on 19 June in the opening Group B match against Australia, missing several good chances to score as Germany won 3–2. After that, he was benched in favour of Timo Werner and Lars Stindl as Germany defeated Chile 1–0 in the final.
Wagner is known for aerial prowess, strength, and is distinguished as a hard-working player. His is also physically imposing and direct, and has been praised as a striker who can "wreak havoc" in defenses. Speaking in June 2017, Germany manager Joachim Löw stated that Wagner has "maturity and personality and one who stands by his own opinion".As of matches played on 24 August 2017
1.^ Includes German Cup.
2.^ Includes UEFA Champions League and UEFA Europa League.
3.^ Includes German League Cup.
As of match played 11 June 2017
As of 19 June 2017
. Germany score listed first, score column indicates score after each Wagner's goal.
FIFA Confederations Cup: 2017
UEFA European Under-21 Football Championship: 2009