# 2002–03 Cardiff City F.C. season

During the 2002–03 season Cardiff City played in the Football League Division Two. They finished in six place and were promoted to Division One after beating Queens Park Rangers in the play-off final in Cardiff.
The season also saw Robert Earnshaw break the 56-year record of 30 league goals held by Stan Richards and the record of Hughie Ferguson of 32 goals in all competitions.

## Squad

| No. | Pos | Nat | Player | Total | Total | Championship | Championship | FA Cup | FA Cup | League Cup | League Cup | LDV Vans Trophy | LDV Vans Trophy |
| No. | Pos | Nat | Player | Apps | Goals | Apps | Goals | Apps | Goals | Apps | Goals | Apps | Goals |
| 1 | GK | SCO | Neil Alexander | 48 | 0 | 43 | 0 | 4 | 0 | 1 | 0 | 0 | 0 |
| 2 | DF | WAL | Rhys Weston | 50 | 2 | 42 | 2 | 5 | 0 | 2 | 0 | 1 | 0 |
| 3 | DF | WAL | Andy Legg | 46 | 3 | 38 | 3 | 5 | 0 | 2 | 0 | 1 | 0 |
| 4 | MF | ENG | Gareth Whalley | 23 | 0 | 22 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
| 5 | DF | ENG | Spencer Prior | 46 | 0 | 40 | 0 | 4 | 0 | 2 | 0 | 0 | 0 |
| 6 | DF | WAL | Danny Gabbidon | 28 | 0 | 27 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
| 7 | FW | ENG | Andy Campbell | 40 | 7 | 31 | 4 | 5 | 2 | 2 | 0 | 2 | 1 |
| 8 | MF | EIR | Graham Kavanagh | 50 | 4 | 47 | 4 | 1 | 0 | 2 | 0 | 0 | 0 |
| 9 | FW | ENG | Leo Fortune-West | 28 | 4 | 19 | 2 | 5 | 1 | 2 | 0 | 2 | 1 |
| 10 | FW | WAL | Robert Earnshaw | 55 | 35 | 49 | 31 | 4 | 1 | 2 | 3 | 0 | 0 |
| 11 | FW | ENG | Peter Thorne | 55 | 16 | 49 | 14 | 4 | 1 | 1 | 1 | 1 | 0 |
| 12 | MF | EIR | Willie Boland | 50 | 1 | 44 | 0 | 4 | 1 | 2 | 0 | 0 | 0 |
| 13 | GK | WAL | Martyn Margetson | 10 | 0 | 6 | 0 | 1 | 0 | 1 | 0 | 2 | 0 |
| 14 | FW | WAL | Jason Bowen | 18 | 4 | 11 | 3 | 5 | 0 | 0 | 0 | 2 | 1 |
| 15 | MF | ENG | Mark Bonner | 19 | 0 | 17 | 0 | 0 | 0 | 0 | 0 | 2 | 0 |
| 16 | MF | WAL | Leyton Maxwell | 22 | 0 | 16 | 0 | 3 | 0 | 2 | 0 | 1 | 0 |
| 17 | DF | WAL | James Collins | 7 | 2 | 2 | 0 | 3 | 2 | 0 | 0 | 2 | 0 |
| 18 | DF | WAL | Scott Young | 14 | 1 | 12 | 1 | 2 | 0 | 0 | 0 | 0 | 0 |
| 19 | MF | ENG | Michael Simpkins | 2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 0 |
| 19 | MF | ENG | Gareth Ainsworth | 9 | 0 | 9 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 20 | FW | ENG | Gavin Gordon | 11 | 3 | 10 | 2 | 0 | 0 | 0 | 0 | 1 | 1 |
| 21 | MF | WAL | David Hughes | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 22 | GK | WAL | Mark Walton | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 23 | DF | ENG | Chris Barker | 50 | 0 | 43 | 0 | 5 | 0 | 1 | 0 | 1 | 0 |
| 24 | MF | WAL | Gethin Jones | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 25 | DF | ENG | Des Hamilton | 12 | 0 | 6 | 0 | 3 | 0 | 1 | 0 | 2 | 0 |
| 26 | DF | ENG | Gary Croft | 51 | 1 | 45 | 1 | 4 | 0 | 2 | 0 | 0 | 0 |
| 27 | DF | WAL | Ryan Green | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
| 27 | DF | WAL | Josh Low | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 27 | MF | EIR | Alan Mahon | 15 | 2 | 15 | 2 | 0 | 0 | 0 | 0 | 0 | 0 |
| 28 | DF | SCO | Andy Jordan | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 29 | MF | WAL | Kevin Evans | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 30 | MF | WAL | Martyn Giles | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 31 | GK | WAL | Lee Kendall | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 32 | DF | WAL | Steve Jenkins | 4 | 0 | 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 33 | DF | CHN | Fan Zhiyi | 7 | 0 | 6 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |

## Standings

| Pos | Teamvte | Pld | W | D | L | GF | GA | GD | Pts | Promotion or relegation |
| 4 | Queens Park Rangers | 46 | 24 | 11 | 11 | 69 | 45 | +24 | 83 | Qualification for the Second Division play-offs |
| 5 | Oldham Athletic | 46 | 22 | 16 | 8 | 68 | 38 | +30 | 82 | Qualification for the Second Division play-offs |
| 6 | Cardiff City (O, P) | 46 | 23 | 12 | 11 | 68 | 43 | +25 | 81 | Qualification for the Second Division play-offs |
| 7 | Tranmere Rovers | 46 | 23 | 11 | 12 | 66 | 57 | +9 | 80 | |
| 8 | Plymouth Argyle | 46 | 17 | 14 | 15 | 63 | 52 | +11 | 65 | |

### Results by round

| Round | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 |
| Ground | A | H | H | A | H | A | H | H | A | A | H | A | H | A | H | A | H | A | H | A | H | A | A | H | H | H | A | H | A | H | H | A | A | A | H | A | H | H | H | A | A | A | H | A | H | A |
| Result | W | W | L | W | D | D | W | W | W | D | W | D | W | L | W | W | W | L | W | W | L | W | L | W | D | W | L | D | W | D | D | W | D | W | L | D | W | W | L | W | W | L | L | L | D | D |
| Position | ~ | 2 | 5 | 3 | 5 | 5 | 8 | 4 | 4 | 1 | 1 | 2 | 1 | 2 | 2 | 1 | 1 | 3 | 2 | 1 | 3 | 2 | 2 | 2 | 2 | 4 | 4 | 4 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 2 | 4 | 3 | 3 | 3 | 3 | 4 | 5 | 6 |

## Fixtures and results
### Division Two

| Date | Opponent | Venue | Result | Attendance | Scorers |
| 10 Aug | Oldham Athletic | A | W 2 – 1 | 8,033 | Campbell, Earnshaw |
| 13 Aug | Port Vale | H | W 3 – 1 | 13,296 | Thorne, Fortune-West, Legg |
| 17 Aug | Northampton Town | H | L 1 – 2 | 13,321 | Kavanagh |
| 24 Aug | Swindon Town | A | W 1 – 0 | 7,564 | Fortune-West |
| 26 Aug | Luton Town | H | D 0 – 0 | 13,564 | |
| 31 Aug | Cheltenham Town | A | D 1 – 1 | 4,395 | Campbell |
| 14 Sep | Stockport County | H | W 2 – 1 | 11,546 | Earnshaw, Kavanagh |
| 17 Sep | Brentford | H | W 2 – 0 | 12,032 | Legg, Earnshaw |
| 21 Sep | Notts County | A | W 1 – 0 | 6,118 | Croft |
| 24 Sep | Plymouth Argyle | A | D 2 – 2 | 11,606 | Earnshaw (2) |
| 28 Sep | Crewe Alexandra | H | W 2 – 1 | 13,208 | Earnshaw (2) |
| 5 Oct | Wigan Athletic | A | D 2 – 2 | 8,047 | Earnshaw (2) |
| 12 Oct | Wycombe Wanderers | H | W 1 – 0 | 13,120 | Kavanagh |
| 19 Oct | Blackpool | A | L 0 – 1 | 7,744 | |
| 26 Oct | Tranmere Rovers | H | W 4 – 0 | 12,096 | Thorne (2), Earnshaw, Weston |
| 29 Oct | Mansfield Town | A | W 1 – 0 | 3,441 | Thorne |
| 2 Nov | Peterborough United | H | W 3 – 0 | 12,918 | Kavanagh, Earnshaw, Weston |
| 9 Nov | Barnsley | A | L 2 – 3 | 10,894 | Earnshaw (2) |
| 24 Nov | Chesterfield | H | W 1 – 0 | 13,331 | Thorne |
| 29 Nov | Queens Park Rangers | A | W 4 – 0 | 14,345 | Earnshaw (3), Campbell |
| 14 Dec | Bristol City | H | L 0 – 2 | 15,239 | |
| 20 Dec | Colchester United | A | W 2 – 1 | 3,096 | Earnshaw (2) |
| 26 Dec | Luton Town | A | L 0 – 2 | 7,805 | |
| 29 Dec | Huddersfield Town | H | W 4 – 0 | 13,703 | Bowen (2), Earnshaw (2) |
| 1 Jan | Swindon Town | H | D 1 – 1 | 13,062 | Earnshaw |
| 18 Jan | Cheltenham Town | H | W 2 – 1 | 11,605 | Thorne, Earnshaw |
| 25 Jan | Huddersfield Town | A | L 0 – 1 | 9,462 | |
| 31 Jan | Oldham Athletic | H | D 1 – 1 | 12,579 | Bowen |
| 4 Feb | Northampton Town | A | W 1 – 0 | 4,553 | Earnshaw |
| 8 Feb | Barnsley | H | D 1 – 1 | 12,759 | Gordon |
| 21 Feb | Plymouth Argyle | H | D 1 – 1 | 14,006 | Earnshaw |
| 25 Feb | Port Vale | A | W 2 – 0 | 3,831 | Gordon, Thorne |
| 1 Mar | Stockport County | A | D 1 – 1 | 5,385 | Thorne |
| 4 Mar | Brentford | A | W 2 – 0 | 5,727 | Young, Earnshaw |
| 8 Mar | Notts County | H | L 0 – 2 | 11,389 | |
| 14 Mar | Tranmere Rovers | A | D 3 – 3 | 9,637 | Earnshaw (3) |
| 18 Mar | Blackpool | H | W 2 – 1 | 11,788 | Earnshaw, Mahon |
| 21 Mar | Mansfield Town | H | W 1 – 0 | 13,009 | Earnshaw |
| 5 Apr | Queens Park Rangers | H | L 1 – 2 | 15,245 | Thorne |
| 8 Apr | Wycombe Wanderers | A | W 4 – 0 | 5,889 | Thorne (2), Mahon, Legg |
| 13 Apr | Chesterfield | A | W 3 – 0 | 4,398 | Kavanagh, Thorne (2) |
| 16 Apr | Peterborough United | A | L 0 – 2 | 4,984 | |
| 19 Apr | Colchester United | H | L 0 – 3 | 12,633 | |
| 22 Apr | Bristol City | A | L 0 – 2 | 15,615 | |
| 26 Apr | Wigan Athletic | H | D 0 – 0 | 14,702 | |
| 3 May | Crewe Alexandra | A | D 1 – 1 | 9,562 | Earnshaw |

### Play-Offs

| Date | Round | Opponent | Venue | Result | Attendance | Scorers |
| 10 May | Semi-final (first leg) | Bristol City | H | W 1 – 0 | 19,146 | Thorne |
| 13 May | Semi-final (second leg) | Bristol City | A | D 0 – 0 | 16,307 | |
| 25 May | Final | Queens Park Rangers | N | W 1 – 0 (aet) | 66,096 | Campbell |

### League Cup

| Date | Round | Opponent | Venue | Result | Attendance | Scorers |
| 11 Sep | One | Boston United | A | W 5 – 1 | 2,280 | Earnshaw (3), OG, Thorne |
| 1 Oct | Two | Tottenham Hotspur | A | L 0 – 1 | |

### FA Cup

| Date | Round | Opponent | Venue | Result | Attendance | Scorers |
| 16 Nov | One | Tranmere Rovers | A | D 2 – 2 | 5,592 | Collins, Kavanagh |
| 26 Nov | One (replay) | Tranmere Rovers | H | W 2 – 1 | 6,853 | Campbell, Collins |
| 7 Dec | Two | Margate | A | W 3 – 0 | 1,362 | Thorne, Boland, Fortune-West |
| 4 Jan | Three | Coventry City | H | D 2 – 2 | 16,013 | Earnshaw, Campbell |
| 15 Jan | Three (replay) | Coventry City | A | L 0 – 3 | 11,997 | |

### LDV Vans Trophy

| Date | Round | Opponent | Venue | Result | Attendance | Scorers |
| 12 Nov | One | Exeter City | A | W 3 – 0 | 1,360 | Bowen, Campbell, Fortune-West |
| 10 Dec | Quarter-final | Bournemouth | A | L 1 – 2 | 3,615 | Gordon |

### FAW Premier Cup

| Date | Round | Opponent | Venue | Result | Attendance | Scorers |
| – | Quarter-final | Total Network Solutions | A | W 3 – 1 | – | Gordon (2), Fleetwood |
| 24 Mar | Semi-final | Newport County | A | L 0 – 0 (Lost 4 – 5 on pens) | 1,160 | |