Robert Lewandowski claimed his fourth top scorer's prize with 22 goals this season, but the 2018/19 Bundesliga season had several players rack up impressive totals. bundesliga.com has the lowdown on the league's deadliest finishers...
Watch: The Bundesliga top scorers since 2000!
Robert Lewandowski (Bayern Munich)
Appearances: 33 (33 starts)
Goals per game: 0.67
Such are the stratospheric standards set by Bayern's sharpshooter that what is an exceptional strike rate for us mere mortals is merely mortal for this god of goalscoring. Lewandowski went three games without finding the net before picking up a more familiar pace, netting two against Wolfsburg, scoring twice in the Matchday 11 defeat to former club Dortmund, and to prove the adage of all good things coming in threes, netting another brace in the Bavarian derby. Hannover, Hoffenheim and VfB Stuttgart fell victim to the Pole's predatory finishing, before he became the first player to score 100 Allianz Arena goals with his 13th of the season in the Matchday 21 win over Schalke. He grabbed two more on both Matchdays 24 and 25 to usurp Claudio Pizarro as the Bundesliga's record foreign-born goalscorer. He added another goal in a convincing win over Mainz, served up his 199th in the Bundesliga in the Matchday 27 draw at Freiburg and broke the 200-mark with a brace in Der Klassiker against Dortmund. After a three-game goalless run, Lewy brought up his 22nd for the campaign against Hannover on Matchday 32.
Paco Alcacer (Borussia Dortmund)
Appearances: 26 (12 starts)
Goals per game: 0.69
The summer arrival from Barcelona breezed into the Bundesliga and hit opponents like a hurricane. Just ask Matchday 7 opponents Augsburg: they were leading 1-0 until Alcacer came off the bench, completing a second-half hat-trick with a 96th-minute matchwinner in a 4-3 Dortmund win for the ages. He continued his epic run with a goal against VfB Stuttgart - his first Bundesliga start - and scored the winner, again as a substitute in Der Klassiker against Bayern Munich. Dortmund rewarded him by transforming his loan into a permanent move, and he paid them back with goal-scoring cameos against Mainz, Freiburg and Düsseldorf to set a new single-season Bundesliga record for substitute strikes (10). He scored from the bench once again on Matchday 24 and from the start a week later, but netted possibly his most important goals yet against Wolfsburg on Matchday 27, striking twice in injury time to send BVB back to the top of the standings. The former Barca striker added a first Bundesliga penalty to the collection against Freiburg on Matchday 30 - again from the bench - and broke the Bundesliga's goals-per-minute record with his stunning free-kick in the Matchday 32 draw with Werder Bremen.
Luka Jovic (Eintracht Frankfurt)
Appearances: 32 (25 starts)
Goals per game: 0.53
After a slow start to the season, Jovic found a vein of excellent form, scoring in three consecutive games for the first time in his career after finding the net against Hannover and Hoffenheim in the Bundesliga and Lazio in the UEFA Europa League. His display against Fortuna Düsseldorf on Matchday 8 had something of a coming-of-age feel about it, though, with the Serbia international unstoppable in a 7-1 win on home turf, scoring five before being substituted off to a standing ovation. He netted seven goals between Matchdays 11-20, before adding a 15th of the campaign against Hannover on Matchday 23 and moving on to 16 to help Frankfurt into the top four with a 3-0 win against Stuttgart on Matchday 27. A week later, he then converted a penalty in the ninth minute of second-half injury time to seal a 2-1 win at Schalke.
Kai Havertz (Bayer Leverkusen)
Appearances: 34 (33 starts)
Goals per game: 0.50
Havertz has enjoyed the best season of his fledgling career - a fact underlined by him becoming a full Germany international towards the end of 2018. The 19-year-old grabbed his first goal of the season against Mainz on Matchday 4, hit a brace against Werder Bremen on Matchday 9 and went into the winter break with five after adding to his tally against Nuremberg and Hertha Berlin (two). He was on fire in 2019 too, helping steer his side up the table and into fourth place, closing out the season with a run of seven goals in his seven games, only drawing a blank against Nuremberg.
Marco Reus (Borussia Dortmund)
Appearances: 27 (27 starts)
Goals per game: 0.63
If you don't love the sight of Reus in full flight, you can only be a Schalke fan. Fit again and bang in form, the Dortmund captain was the fulcrum of Lucien Favre's attack, prompting teammates and punishing opponents in equally effective measure with his Matchday 5 display in the 7-0 dismissal of Nuremberg one of his all-time best. He added to his tally in a narrow win at Wolfsburg, grabbed a brace in the comeback victory over Bayern Munich on Matchday 11 and struck again in wins against Freiburg, Bremen, Gladbach and Hannover, and the Matchday 20 draw with Frankfurt. He was back among the goals in the crucial Matchday 25 triumph over VfB Stuttgart, hit a last-gasp winner in the 3-2 win over Hertha Berlin on Matchday 26 and took his season tally to 16 - a career best in a Dortmund shirt - in the Matchday 30 drubbing of Freiburg. He added his final goal of the term against his former club Borussia Mönchengladbach on the last day of the season and the Dortmund talisman narrowly missed out on the title.
Andrej Kramaric (Hoffenheim)
Appearances: 30 (28 starts)
Goals per game: 0.56
Kramaric took a while to get going this season, scoring just twice in his first seven Bundesliga outings. He began a hot streak on Matchday 11 though, netting in four consecutive games against Augsburg, Hertha Berlin, Schalke and Wolfsburg. He ended a three-game drought with a brace in Hoffenheim's 4-2 victory over Freiburg on Matchday 19, before opening the scoring the following week in the 1-1 draw with Fortuna Düsseldorf. The 27-year-old Croatia international was on target again on Matchday 23 in Hoffenheim's 1-1 draw at RB Leipzig, and hit a brace as Julian Nagelsmann's side beat Nuremberg 2-1 on Matchday 24. Further efforts against Stuttgart, Bayer Leverkusen, Augsburg, Schalke and Hoffenheim put him on 11 in 2019 and a career-best 17 for the current campaign.
Wout Weghorst (Wolfsburg)
Appearances: 34 (33 starts)
Goals per game: 0.50
The 26-year-old Dutchman hit the ground running in his maiden Bundesliga season. He found the net against Leverkusen on Matchday 2, one of six goals in the first half of the season. The 6'6" forward did even better after the turn of the year, memorably scoring a hat-trick and grabbing two assists in a 5-2 demolition of Fortuna Düsseldorf on Matchday 26, before adding a brace against Hoffenheim on Matchday 31. He rounded out his first season in Germany with another hat-trick in Wolfsburg's final-day 8-1 demolition of Augsburg.
Timo Werner (RB Leipzig)
Appearances: 30 (29 starts)
Goals per game: 0.53
Werner scored braces against Nuremberg, Hannover, Hertha Berlin, Borussia Mönchengladbach and Mainz, before ruining the fun for statisticians everywhere by scoring just the once in the 3-2 victory over Werder Bremen on Matchday 17. He belatedly opened his account for 2019 in the 1-0 win at Schalke on Matchday 26, but netted in back-to-back wins over Bayer Leverkusen and Wolfsburg on Matchdays 28 and 29, before taking his total for the season to 16 with the opener against Freiburg on Matchday 31 and Leipzig's third in the 3-3 draw at Mainz a week later.
Ishak Belfodil (Hoffenheim)
Appearances: 28 (20 starts)
Goals per game: 0.57
A summer signing from Standard Liege, via a loan spell with Werder Bremen, Belfodil scored four goals in 14 appearances during the first half of the season, including a brace against VfB Stuttgart on Matchday 9. The Algeria striker grabbed another double in the 3-3 draw with Borussia Dortmund, before adding to his haul with efforts against Hannover, Eintracht Frankfurt and braces in the 4-1 and 5-2 wins over Bayer Leverkusen and Schalke respectively. His strike on the final day of the season meant that he scored 12 of his 16 Bundesliga goals season in 2019.
Yussuf Poulsen (RB Leipzig)
Appearances: 31 (27 starts)
Goals per game: 0.48
The Denmark international is lauded for his work ethic as he tirelessly harries opposing defenders, creating time and space for his teammates to score goals. This season, he has managed to ally both. He got the Leipzig party started in the 3-2 win over Hannover on Matchday 3; for the impressive 2-1 defeat of Hoffenheim, Poulsen did not even need any help in earning his team all three points; and hit braces against Bayer Leverkusen on Matchday 11, Mainz on Matchday 15, Düsseldorf on Matchday 19 and Stuttgart on Matchday 22. He became the first Leipzig player to score a Bundesliga hat-trick in the 5-0 rout of Hertha on Matchday 27.
Sebastien Haller (Eintracht Frankfurt)
Appearances: 29 (23 starts)
Goals per game: 0.52
The powerful French striker was on target in Frankfurt's first three Bundesliga outings this season against Freiburg, Werder Bremen and Borussia Dortmund. A four-game goal drought came to an end on Matchday 8 when he struck a brace in a relentless 7-1 triumph at home to Fortuna Düsseldorf. He came to the Eagles' rescue in a 1-1 draw in Nuremberg, and then opened the scoring for his side at VfB Stuttgart before rounding things out against Schalke in consecutive 3-0 wins and scoring for a seventh straight game in the 3-1 triumph over Augsburg. After going five games without a goal, he moved onto double figures with the opening goal against Freiburg on Matchday 18, and struck again against Bremen and Hoffenheim. He came of the bench to net a quickfire stoppage-time brace in a 3-0 triumph over Düsseldorf on Matchday 25. Injuries interrupted the close of the season, but Haller returned to the Frankfurt side for the last two matches of the season and netted his side's last goal of the season against Bayern Munich on the final day.
Kevin Volland (Bayer Leverkusen)
Appearances: 34 (32 starts)
Goals per game: 0.41
Volland failed to find the net in Leverkusen's first four matches this season, but then found his scoring boots. The versatile forward grabbed both goals in a 2-1 victory of Fortuna Düsseldorf on Matchday 5 and added another four prior to the winter break. After the turn of the year, the 26-year-old found the target nine times, including goals against Wolfsburg, Bayern Munich and Borussia Dortmund. He also scored in back-to-back games - against Nuremberg and Augsburg - for the second time in 2018/19.
Jean-Philippe Mateta (Mainz)
Appearances: 34 (29 starts)
Goals per game: 0.41
At just 21 years of age, it's fair to say that Jean-Philippe Mateta is one of the most exciting young players in the Bundesliga. The young French striker arrived from Lyon and quickly found his feet at his new club, scoring against Nuremberg on matchday 2. He would wait until matchday 10 to find the net again, but then did so in back-to-back games against Bremen and Freiburg. As the season progressed, Mainz found that Mateta could be relied upon to put the ball into the back of the net: the Frenchman scored nine goals in 2019, capping it all off with the final goal in the 4-2 come-from-behind victory against Hoffenheim on the final day.
On 12 goals
Alassane Plea (Borussia Mönchengladbach)
Jadon Sancho (Borussia Dortmund)
On 11 goals
Ondrej Duda (Hertha Berlin)
Max Kruse (Werder Bremen)
On 10 goals
Alfred Finnbogason (Augsburg)
Serge Gnabry (Bayern Munich)
Thorgan Hazard (Borussia Mönchengladbach)
Vedad Ibisevic (Hertha Berlin)
Dodi Lukebakio (Fortuna Düsseldorf)
Beinto Raman (Fortuna Düsseldorf)
On nine goals
Ante Rebic (Eintracht Frankfurt)
Milot Rashica (Werder Bremen)
Luca Waldschmidt (SC Freiburg)
Lucas Alario (Bayer Leverkusen)