Error message

  • Deprecated function: Return type of Aws\HandlerList::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in include() (line 32 of /var/www/html/vendor/aws/aws-sdk-php/src/HandlerList.php).
  • Deprecated function: Return type of Aws\Api\AbstractModel::offsetExists($offset) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in include() (line 7 of /var/www/html/vendor/aws/aws-sdk-php/src/Api/AbstractModel.php).
  • Deprecated function: Return type of Aws\Api\AbstractModel::offsetGet($offset) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in include() (line 7 of /var/www/html/vendor/aws/aws-sdk-php/src/Api/AbstractModel.php).
  • Deprecated function: Return type of Aws\Api\AbstractModel::offsetSet($offset, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in include() (line 7 of /var/www/html/vendor/aws/aws-sdk-php/src/Api/AbstractModel.php).
  • Deprecated function: Return type of Aws\Api\AbstractModel::offsetUnset($offset) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in include() (line 7 of /var/www/html/vendor/aws/aws-sdk-php/src/Api/AbstractModel.php).
  • Deprecated function: Return type of Aws\Endpoint\Partition::offsetExists($offset) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in include() (line 13 of /var/www/html/vendor/aws/aws-sdk-php/src/Endpoint/Partition.php).
  • Deprecated function: Return type of & Aws\Endpoint\Partition::offsetGet($offset) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in include() (line 13 of /var/www/html/vendor/aws/aws-sdk-php/src/Endpoint/Partition.php).
  • Deprecated function: Return type of Aws\Endpoint\Partition::offsetSet($offset, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in include() (line 13 of /var/www/html/vendor/aws/aws-sdk-php/src/Endpoint/Partition.php).
  • Deprecated function: Return type of Aws\Endpoint\Partition::offsetUnset($offset) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in include() (line 13 of /var/www/html/vendor/aws/aws-sdk-php/src/Endpoint/Partition.php).
  • Deprecated function: Aws\Credentials\Credentials implements the Serializable interface, which is deprecated. Implement __serialize() and __unserialize() instead (or in addition, if support for old PHP versions is necessary) in include() (line 8 of /var/www/html/vendor/aws/aws-sdk-php/src/Credentials/Credentials.php).
  • Deprecated function: Return type of Aws\Command::offsetExists($offset) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in include() (line 7 of /var/www/html/vendor/aws/aws-sdk-php/src/Command.php).
  • Deprecated function: Return type of & Aws\Command::offsetGet($offset) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in include() (line 7 of /var/www/html/vendor/aws/aws-sdk-php/src/Command.php).
  • Deprecated function: Return type of Aws\Command::offsetSet($offset, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in include() (line 7 of /var/www/html/vendor/aws/aws-sdk-php/src/Command.php).
  • Deprecated function: Return type of Aws\Command::offsetUnset($offset) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in include() (line 7 of /var/www/html/vendor/aws/aws-sdk-php/src/Command.php).
  • Deprecated function: Return type of Aws\Command::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in include() (line 7 of /var/www/html/vendor/aws/aws-sdk-php/src/Command.php).
  • Deprecated function: Return type of Aws\Command::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in include() (line 7 of /var/www/html/vendor/aws/aws-sdk-php/src/Command.php).
  • Deprecated function: Return type of Aws\Result::offsetExists($offset) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in include() (line 9 of /var/www/html/vendor/aws/aws-sdk-php/src/Result.php).
  • Deprecated function: Return type of & Aws\Result::offsetGet($offset) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in include() (line 9 of /var/www/html/vendor/aws/aws-sdk-php/src/Result.php).
  • Deprecated function: Return type of Aws\Result::offsetSet($offset, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in include() (line 9 of /var/www/html/vendor/aws/aws-sdk-php/src/Result.php).
  • Deprecated function: Return type of Aws\Result::offsetUnset($offset) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in include() (line 9 of /var/www/html/vendor/aws/aws-sdk-php/src/Result.php).
  • Deprecated function: Return type of Aws\Result::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in include() (line 9 of /var/www/html/vendor/aws/aws-sdk-php/src/Result.php).
  • Deprecated function: Return type of Aws\Result::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in include() (line 9 of /var/www/html/vendor/aws/aws-sdk-php/src/Result.php).
  • Warning: Undefined array key "nid" in views_handler_field_term_node_tid->pre_render() (line 98 of /var/www/html/docroot/sites/all/modules/views/modules/taxonomy/views_handler_field_term_node_tid.inc).
  • Warning: Undefined array key "nid" in views_handler_field_term_node_tid->pre_render() (line 98 of /var/www/html/docroot/sites/all/modules/views/modules/taxonomy/views_handler_field_term_node_tid.inc).
×

Entertainment

Premier League Top Scorers Of All Time (Official)

The English Premier League is the richest group of teams in the world, with many of the best players from around the globe gathered in England (and Wales). The Premier League top scorers of all time therefore is a list featuring some of the best finishers to ever play the game.

The EPL has only been around since 1992, so unfortunately Jimmy Greaves’ record 357 goals from 1957-71 doesn’t make it on the list of the Premier League top scorers of all time. However, plenty of other giants of the game have graced the league, from Cristiano Ronaldo to Thierry Henry. 

Where do they stack up among the Premier League top goal scorers of all time? We’ve compiled the 25 greatest goal scorers in league history so you know who has the ultimate bragging rights. 

Also, for the record, the most goals scored in a single Premier League season is 34, set by Andy Cole and Alan Shearer in 1994 and 1995, respectively. However, those records were set in 42-match seasons. In 38-match seasons, Shearer, Ronaldo and Luis Suarez previously set the record at 31, but Liverpool's Mohamed Salah just broke that record with 32. 

We’ve given you the top all-time goal scorers in soccer history and the players with the most career goals in each league. We also gave you the list of English Premier League top scorers of all time a couple years ago, but it’s high time we updated that list, with a few changes near the top and a couple players entering the top 25.

So without further ado, here are the top 25 goal scorers in the history of the Premier League.

Premier League Top Scorers Of All Time

25. Darren Bent: 106 goals (Ipswich Town, Charlton Athletic, Tottenham, Sunderland, Aston Villa, Fulham)

The journeyman striker has spent the latter part of his career in the lower divisions of England.


24. Paul Scholes: 107 goals (Manchester United)

Scholes was a master at long-range goals

22. Harry Kane: 108 goals (Tottenham)

The newest member of the list of the Premier League top scorers of all time has scored at least 20 goals in four straight seasons, including 30 in 2017-18. 

Premier League Top Scorers Of All Time

At 24 years old as of publication, Harry Kane is the youngest member on this list. Photo: @Squawka | Twitter

22. Peter Crouch: 108 goals (Aston Villa, Southampton, Liverpool, Portsmouth, Tottenham, Stoke City)

At 6-7, Crouch is the tallest player on this list.


21. Ryan Giggs: 109 goals (Manchester United)

Giggs owns the Premier League record for most assists with 162, well ahead of second-place Cesc Fabregas (111). 

Premier League Top Scorers Of All Time

An incredible duo for Manchester United. Photo: @90sfootball | Twitter

20. Emile Heskey: 110 goals (Leicester City, Liverpool, Birmingham City, Wigan Athletic, Aston Villa)

Heskey once broke Liverpool’s transfer fee record when the club paid £11 million for him in 2000. 

19. Dion Dublin: 111 goals (Manchester United, Coventry City, Aston Villa)

Dublin actually started his career as a center back. 

18. Ian Wright: 113 goals (Arsenal, Crystal Palace, West Ham)

Wright is Arsenal’s second-leading goal scorer with 185, trailing only Thierry Henry. 

17. Steven Gerrard: 120 goals (Liverpool)

Gerrard started at the Liverpool academy at age 9 and played with the club from 1989 until 2015. We’ll just ignore the two forgettable seasons he spent with the LA Galaxy. 

16. Dwight Yorke: 123 goals (Aston Villa, Manchester United, Blackburn, Birmingham City, Sunderland)

Yorke, from Trinidad and Tobago, is the only Concacaf representative on this list. Clint Dempsey is the next highest goal scorer form Concacaf with 57 goals (72nd all time).

15. Nicolas Anelka: 125 goals (Arsenal, Liverpool, Manchester City, Bolton Wanderers, Chelsea, West Brom)

The Frenchman also spent time at PSG, Real Madrid, Fenerbahce, Shanghai Shenhua, Juventus and Mumbay City. 

14. Robbie Keane: 126 goals (Aston Villa, West Ham, Liverpool, Tottenham, Leeds United, Coventry City)

The Ireland forward also scored 83 goals with the LA Galaxy, slightly more than the five Gerrard scored for the MLS club. 

13. Jimmy Floyd Hasselbaink: 127 goals (Leeds United, Chelsea, Middlesborough, Charlton Athletic, Cardiff City)

The Dutch striker was prolific but the only trophies he won over his career were a Taca de Portugal title in 1997 with Boavista and an FA Charity Shield in 2000 with Chelsea. 

12. Sergio Agüero: 143 goals (Manchester City)

The Argentine has scored 20 goals in six of his eight seasons in England, including 26 in 2015.

Premier League Top Scorers Of All Time

If he sticks around, Agüero is sure to reach the top 10 on the list of Premier League top scorers of all time. Photo: @BBCSport | Twitter

11. Robin van Persie: 144 goals (Arsenal, Manchester United)

The flying Dutchman won the Premier League’s Golden Boot two years in a row with two different teams in 2012 and 2013. 

10. Teddy Sheringham: 146 goals (Nottingham Forest, Tottenham, Manchester United, West Ham)

Sheringham is most celebrated for scoring the equalizer and assisting on the winner in Manchester United’s late comeback against Bayern Munich in the 1999 Champions League final.

9. Les Ferdinand: 149 goals (QPR, Newcastle, Tottenham, West Ham, Leicester City, Bolton Wanderers)

Les is the cousin of Rio and Anton Ferdinand. He received 17 England caps, scoring five times.

8. Michael Owen: 150 goals (Liverpool, Newcastle, Manchester City, Stoke)

Owen scored 13 goals in his one season in LaLiga with Real Madrid in 2004-05 but never again matched the success he had with Liverpool early in his career. 

7. Jermaine Defoe: 162 goals (Tottenham, Portsmouth, Sunderland, Bournemouth)

Defoe spent one season in Toronto, scoring 11 goals in 19 appearances.

6. Robbie Fowler: 163 goals (Liverpool, Leeds United, Cardiff City, Blackburn Rovers)

Fowler scored 128 goals for Liverpool across all competitions and also appeared in the A-League and Thai League before retiring. 

5. Thierry Henry: 175 goals (Arsenal)

The Gunner has the highest scoring rate (0.68 per game) of anyone in the top 10 on this list. He scored at least 24 league goals in five straight seasons, something no one else on this list can claim.

Premier League Top Scorers Of All Time

Thierry Henry won four Premier League Golden Boots. Photo: @premierleague | Twitter

4. Frank Lampard: 177 goals (West Ham, Chelsea, Manchester City)

The only midfielder in the top 10, Lampard only scored more than 16 goals once (22 in 2009-10), but had remarkable consistency with 10 straight seasons of double-digit goals. 

Premier League Top Scorers Of All Time

Few midfielders could score at the rate of Lampard. Photo: @fan12chelsea | Twitter

3. Andy Cole: 187 goals (Arsenal, Fulham, Newcastle, Manchester United, Blackburn Rovers, Manchester City, Portsmouth, Sunderland, Nottingham Forest)

The English striker played for more than a dozen different clubs but is most well known for his time at Manchester United, scoring 121 goals in 275 matches across all competitions for Sir Alex Ferguson. 

Premier League Top Scorers Of All Time

Andy Cole is third on the list of Premier League top scorers of all time. Photo: @UNILAD | Twitter

2. Wayne Rooney: 208 goals (Everton, Manchester United)

Rooney has scored 10 or more goals in 11 different seasons, including the 2017-18 season, his 16th as a professional. His 53 goals for England are the most all time. 

Premier League Top Scorers Of All Time

Rooney is Manchester United’s all-time leading goal scorer with 253. Photo: @OptaJoe | Twitter

1. Alan Shearer: 260 goals (Newcastle, Blackburn)

Shearer had perhaps the greatest three-year span of any Premier League player in history, scoring 96 league goals from 1993-1996 for Blackburn. He reached the 20-goal mark seven times and scored 260 goals in more than 50 matches fewer than Rooney. 

Premier League Top Scorers Of All Time

Few can touch Shearer’s scoring rate while he was at Blackburn. Photo: @lelanglawas | Twitter

Videos you might like