Season | Champions | Runners-up | Play-off winners | Relegated to League One | Relegated from Premier League | Promoted from League One | Top goal scorers |
Club | Pts | Club | Pts | Club | Player | Goals |
1992–93 | Newcastle United | 96 | West Ham United | 88 | Swindon Town | Brentford Cambridge United Bristol Rovers | Crystal Palace Middlesbrough Nottingham Forest | Stoke City Bolton Wanderers West Bromwich Albion | Guy Whittingham (Portsmouth) | 42 |
1993–94 | Crystal Palace | 90 | Nottingham Forest | 83 | Leicester City | Birmingham City Oxford United Peterborough United | Sheffield United Oldham Athletic Swindon Town | Reading Port Vale Burnley | John McGinlay (Bolton Wanderers) | 25 |
1994–95 | Middlesbrough | 82 | Reading[a] | 78 | Bolton Wanderers | Swindon Town Burnley Bristol City Notts County | Crystal Palace Norwich City Leicester City Ipswich Town | Birmingham City Huddersfield Town | John Aldridge (Tranmere Rovers) | 24 |
1995–96 | Sunderland | 83 | Derby County | 79 | Leicester City | Millwall Watford Luton Town | Manchester City Queens Park Rangers Bolton Wanderers | Swindon Town Oxford United Bradford City | John Aldridge (Tranmere Rovers) | 27 |
1996–97 | Bolton Wanderers | 98 | Barnsley | 80 | Crystal Palace | Grimsby Town Oldham Athletic Southend United | Sunderland Middlesbrough Nottingham Forest | Bury Stockport County Crewe Alexandra | John McGinlay (Bolton Wanderers) | 27 |
1997–98 | Nottingham Forest | 94 | Middlesbrough | 91 | Charlton Athletic | Manchester City Stoke City Reading | Bolton Wanderers Barnsley Crystal Palace | Watford Bristol City Grimsby Town | Pierre van Hooijdonk (Nottingham Forest) Kevin Phillips (Sunderland) | 29 |
1998–99 | Sunderland | 105 | Bradford City | 87 | Watford | Bury Oxford United Bristol City | Charlton Athletic Blackburn Rovers Nottingham Forest | Fulham Walsall Manchester City | Lee Hughes (West Bromwich Albion) | 31 |
1999–2000 | Charlton Athletic | 91 | Manchester City | 89 | Ipswich Town | Walsall Port Vale Swindon Town | Wimbledon Sheffield Wednesday Watford | Preston North End Burnley Gillingham | Andy Hunt (Charlton Athletic) | 24 |
2000–01 | Fulham | 101 | Blackburn Rovers | 91 | Bolton Wanderers | Huddersfield Town Queens Park Rangers Tranmere Rovers | Manchester City Coventry City Bradford City | Millwall Rotherham United Walsall | Louis Saha (Fulham) | 27 |
2001–02 | Manchester City | 99 | West Bromwich Albion | 89 | Birmingham City | Crewe Alexandra Barnsley Stockport County | Ipswich Town Derby County Leicester City | Brighton & Hove Albion Reading Stoke City | Shaun Goater (Manchester City) | 28 |
2002–03 | Portsmouth | 98 | Leicester City | 92 | Wolverhampton Wanderers | Sheffield Wednesday Brighton & Hove Albion Grimsby Town | West Ham United West Bromwich Albion Sunderland | Wigan Athletic Crewe Alexandra Cardiff City | Svetoslav Todorov (Portsmouth) | 26 |
2003–04 | Norwich City | 94 | West Bromwich Albion | 86 | Crystal Palace | Walsall Bradford City Wimbledon | Leicester City Leeds United Wolves | Plymouth Argyle Queens Park Rangers Brighton & Hove Albion | Andrew Johnson (Crystal Palace) | 27 |
Football League Championship |
2004–05 | Sunderland | 94 | Wigan Athletic | 87 | West Ham United | Gillingham Nottingham Forest Rotherham United | Crystal Palace Norwich City Southampton | Luton Town Hull City Sheffield Wednesday | Nathan Ellington (Wigan Athletic) | 24 |
2005–06 | Reading | 106 | Sheffield United | 90 | Watford | Crewe Alexandra Millwall Brighton & Hove Albion | Birmingham City West Bromwich Albion Sunderland | Southend United Colchester United Barnsley | Marlon King (Watford) | 21 |
2006–07 | Sunderland | 88 | Birmingham City | 86 | Derby County | Southend United Luton Town Leeds United | Sheffield United Charlton Athletic Watford | Scunthorpe United Bristol City Blackpool | Jamie Cureton (Colchester United) | 23 |
2007–08 | West Bromwich Albion | 81 | Stoke City | 79 | Hull City | Leicester City Scunthorpe United Colchester United | Reading Birmingham City Derby County | Swansea City Nottingham Forest Doncaster Rovers | Sylvan Ebanks-Blake (Plymouth Argyle/Wolverhampton Wanderers) | 23 |
2008–09 | Wolverhampton Wanderers | 90 | Birmingham City | 83 | Burnley | Norwich City Southampton Charlton Athletic | Newcastle United Middlesbrough West Bromwich Albion | Leicester City Peterborough United Scunthorpe United | Sylvan Ebanks-Blake (Wolverhampton Wanderers) | 25 |
2009–10 | Newcastle United | 102 | West Bromwich Albion | 91 | Blackpool | Sheffield Wednesday Plymouth Argyle Peterborough United | Hull City Burnley Portsmouth | Norwich City Leeds United Millwall | Nicky Maynard (Bristol City) Peter Whittingham (Cardiff City) | 20 |
2010–11 | Queens Park Rangers | 88 | Norwich City | 84 | Swansea City | Preston North End Scunthorpe United Sheffield United | Birmingham City Blackpool West Ham United | Brighton & Hove Albion Southampton Peterborough United | Danny Graham (Watford) | 24 |
2011–12 | Reading | 89 | Southampton | 88 | West Ham United | Portsmouth Coventry City Doncaster Rovers | Bolton Wanderers Blackburn Rovers Wolves | Charlton Athletic Sheffield Wednesday Huddersfield Town | Rickie Lambert | 27 |
2012–13 | Cardiff City | 87 | Hull City | 79 | Crystal Palace | Peterborough United Wolves Bristol City | Reading Queens Park Rangers Wigan Athletic | Bournemouth Doncaster Rovers Yeovil Town | Glenn Murray (Crystal Palace) | 30 |
2013–14 | Leicester City | 102 | Burnley | 93 | Queens Park Rangers | Yeovil Town Barnsley Doncaster Rovers | Cardiff City Fulham Norwich City | Wolves Brentford Rotherham United | Ross McCormack (Leeds United) | 28 |
2014–15 | AFC Bournemouth | 90 | Watford | 89 | Norwich City | Millwall Wigan Athletic Blackpool | Hull City Burnley Queens Park Rangers | Bristol City Milton Keynes Dons Preston North End | Daryl Murphy (Ipswich Town) | 27 |
2015–16 | Burnley | 93 | Middlesbrough | 89 | Hull City | Charlton Athletic Milton Keynes Dons Bolton Wanderers | Newcastle United Norwich City Aston Villa | Wigan Athletic Burton Albion Barnsley | Andre Gray (Burnley) | 25 |
2016–17 | Newcastle United | 94 | Brighton & Hove Albion | 93 | Huddersfield Town | Blackburn Rovers Wigan Athletic Rotherham United | Hull City Middlesbrough Sunderland | Sheffield United Bolton Wanderers Millwall | Chris Wood (Leeds United) | 27 |
2017–18 | Wolverhampton Wanderers | 99 | Cardiff City | 90 | Fulham | Barnsley Burton Albion Sunderland | Swansea City Stoke City West Bromwich Albion | Wigan Athletic Blackburn Rovers Rotherham United | Matěj Vydra (Derby County) | 21 |
2018–19 | Norwich City | 94 | Sheffield United | 89 | Aston Villa | Rotherham United Bolton Wanderers Ipswich Town | Cardiff City Fulham Huddersfield Town | Luton Town Barnsley Charlton Athletic | Teemu Pukki (Norwich City) | 29 |
2019–20 | Leeds United | 93 | West Bromwich Albion | 83 | Fulham | Charlton Athletic Wigan Athletic Hull City | Watford Bournemouth Norwich City | Coventry City Rotherham United Wycombe Wanderers | Aleksandar Mitrović (Fulham) Ollie Watkins (Brentford) | 26 |
2020–21 | Norwich City | 97 | Watford | 91 | Brentford | Wycombe Wanderers Rotherham United Sheffield Wednesday | Fulham West Bromwich Albion Sheffield United | Hull City Peterborough United Blackpool | Ivan Toney (Brentford) | 31 |
2021–22 | Fulham | 90 | Bournemouth | 88 | Nottingham Forest | Peterborough United Derby County Barnsley | Burnley Watford Norwich City | Wigan Athletic Rotherham United Sunderland | Aleksandar Mitrović (Fulham) | 43 |
2022–23 | Burnley | 101 | Sheffield United | 91 | Luton Town | Reading Blackpool Wigan Athletic | Leicester City Leeds United Southampton | Plymouth Argyle Ipswich Town Sheffield Wednesday | Chuba Akpom (Middlesbrough) | 28 |