# 2021–22 English Football League

The 2021–22 season was the 123rd season of the English Football League (EFL) and the sixth season under that name after it was renamed from The Football League in 2016. For the ninth season running, the league was sponsored by Sky Betting & Gaming and therefore known as the Sky Bet EFL.
The EFL is contested through three divisions: the Championship, League One and League Two. The winner and the runner up of the Championship are automatically promoted to the Premier League and they are joined by the winner of the Championship playoff. The bottom two teams in League Two are relegated to the National League.
The two-year partnership extension between the league and its official charity Mind expired after this season.

## Championship
### Table

| Pos | Teamvte | Pld | W | D | L | GF | GA | GD | Pts | Promotion, qualification or relegation |
| 1 | Fulham (C, P) | 46 | 27 | 9 | 10 | 106 | 43 | +63 | 90 | Promotion to the Premier League |
| 2 | Bournemouth (P) | 46 | 25 | 13 | 8 | 74 | 39 | +35 | 88 | Promotion to the Premier League |
| 3 | Huddersfield Town | 46 | 23 | 13 | 10 | 64 | 47 | +17 | 82 | Qualification for Championship play-offs |
| 4 | Nottingham Forest (O, P) | 46 | 23 | 11 | 12 | 73 | 40 | +33 | 80 | Qualification for Championship play-offs |
| 5 | Sheffield United | 46 | 21 | 12 | 13 | 63 | 45 | +18 | 75 | Qualification for Championship play-offs |
| 6 | Luton Town | 46 | 21 | 12 | 13 | 63 | 55 | +8 | 75 | Qualification for Championship play-offs |
| 7 | Middlesbrough | 46 | 20 | 10 | 16 | 59 | 50 | +9 | 70 | |
| 8 | Blackburn Rovers | 46 | 19 | 12 | 15 | 59 | 50 | +9 | 69 | |
| 9 | Millwall | 46 | 18 | 15 | 13 | 53 | 45 | +8 | 69 | |
| 10 | West Bromwich Albion | 46 | 18 | 13 | 15 | 52 | 45 | +7 | 67 | |
| 11 | Queens Park Rangers | 46 | 19 | 9 | 18 | 60 | 59 | +1 | 66 | |
| 12 | Coventry City | 46 | 17 | 13 | 16 | 60 | 59 | +1 | 64 | |
| 13 | Preston North End | 46 | 16 | 16 | 14 | 52 | 56 | −4 | 64 | |
| 14 | Stoke City | 46 | 17 | 11 | 18 | 57 | 52 | +5 | 62 | |
| 15 | Swansea City | 46 | 16 | 13 | 17 | 58 | 68 | −10 | 61 | |
| 16 | Blackpool | 46 | 16 | 12 | 18 | 54 | 58 | −4 | 60 | |
| 17 | Bristol City | 46 | 15 | 10 | 21 | 62 | 77 | −15 | 55 | |
| 18 | Cardiff City | 46 | 15 | 8 | 23 | 50 | 68 | −18 | 53 | |
| 19 | Hull City | 46 | 14 | 9 | 23 | 41 | 54 | −13 | 51 | |
| 20 | Birmingham City | 46 | 11 | 14 | 21 | 50 | 75 | −25 | 47 | |
| 21 | Reading | 46 | 13 | 8 | 25 | 54 | 87 | −33 | 41 | |
| 22 | Peterborough United (R) | 46 | 9 | 10 | 27 | 43 | 87 | −44 | 37 | Relegation to EFL League One |
| 23 | Derby County (R) | 46 | 14 | 13 | 19 | 45 | 53 | −8 | 34 | Relegation to EFL League One |
| 24 | Barnsley (R) | 46 | 6 | 12 | 28 | 33 | 73 | −40 | 30 | Relegation to EFL League One |
* ↑ Reading were deducted 6 points for breach of profit and sustainability regulations.
* ↑ Derby County were deducted 12 points for entering administration, and a further 9 points for financial irregularities.

### Play-offs

| Semi-finals | Semi-finals | Semi-finals | Semi-finals | Semi-finals | Final | Final | Final |
| 3 | Huddersfield Town | 1 | 1 | 2 | | | |
| 6 | Luton Town | 1 | 0 | 1 | | | |
| 6 | Luton Town | 1 | 0 | 1 | 3 | Huddersfield Town | 0 |
| | | | | | 4 | Nottingham Forest | 1 |
| 4 | Nottingham Forest | 2 | 1 | 3 (3) | 4 | Nottingham Forest | 1 |
| 5 | Sheffield United | 1 | 2 | 3 (2) | | | |
First leg
Second leg
Huddersfield Town won 2–1 on aggregate.
3–3 on aggregate. Nottingham Forest won 3–2 on penalties.

### Results

| Home \ Away | BOU | BAR | BIR | BLA | BLP | BRI | CAR | COV | DER | FUL | HUD | HUL | LUT | MID | MIL | NTF | PET | PNE | QPR | REA | SHU | STO | SWA | WBA |
| Bournemouth | — | 3–0 | 3–1 | 0–2 | 2–2 | 3–2 | 3–0 | 2–2 | 2–0 | 1–1 | 3–0 | 0–1 | 2–1 | 0–0 | 1–0 | 1–0 | 1–1 | 1–2 | 2–1 | 1–1 | 2–1 | 2–1 | 4–0 | 2–2 |
| Barnsley | 0–1 | — | 1–1 | 0–0 | 0–2 | 2–0 | 0–1 | 1–0 | 2–1 | 1–1 | 1–1 | 0–2 | 0–1 | 3–2 | 0–1 | 1–3 | 0–2 | 1–3 | 1–0 | 1–1 | 2–3 | 1–1 | 0–2 | 0–0 |
| Birmingham City | 0–2 | 2–1 | — | 1–2 | 1–0 | 3–0 | 2–2 | 2–4 | 2–0 | 1–4 | 0–2 | 0–0 | 3–0 | 0–2 | 2–2 | 0–3 | 2–2 | 0–0 | 1–2 | 1–2 | 1–2 | 0–0 | 2–1 | 1–0 |
| Blackburn Rovers | 0–3 | 2–1 | 4–0 | — | 1–1 | 0–1 | 5–1 | 2–2 | 3–1 | 0–7 | 0–0 | 2–0 | 2–2 | 1–0 | 0–0 | 0–2 | 4–0 | 1–0 | 1–0 | 2–0 | 3–1 | 0–1 | 2–1 | 1–2 |
| Blackpool | 1–2 | 1–0 | 6–1 | 2–1 | — | 3–1 | 0–2 | 0–1 | 0–2 | 1–0 | 0–3 | 1–0 | 0–3 | 1–2 | 1–0 | 1–4 | 3–1 | 2–0 | 1–1 | 4–1 | 0–0 | 0–1 | 1–0 | 0–0 |
| Bristol City | 0–2 | 2–1 | 1–2 | 1–1 | 1–1 | — | 3–2 | 1–2 | 1–0 | 1–1 | 2–3 | 5–0 | 1–1 | 2–1 | 3–2 | 1–2 | 1–1 | 0–0 | 1–2 | 2–1 | 1–1 | 1–0 | 0–1 | 2–2 |
| Cardiff City | 0–1 | 1–1 | 1–1 | 0–1 | 1–1 | 1–2 | — | 2–0 | 1–0 | 0–1 | 2–1 | 0–1 | 0–1 | 0–2 | 3–1 | 2–1 | 4–0 | 0–0 | 0–1 | 0–1 | 2–3 | 2–1 | 0–4 | 0–4 |
| Coventry City | 0–3 | 1–0 | 0–0 | 2–2 | 1–1 | 3–2 | 1–0 | — | 1–1 | 4–1 | 1–2 | 0–2 | 0–1 | 2–0 | 0–1 | 2–1 | 3–0 | 1–1 | 1–2 | 2–1 | 4–1 | 1–0 | 1–2 | 1–2 |
| Derby County | 3–2 | 2–0 | 2–2 | 1–2 | 1–0 | 1–3 | 0–1 | 1–1 | — | 2–1 | 1–1 | 3–1 | 2–2 | 0–0 | 1–2 | 1–1 | 1–0 | 1–0 | 1–2 | 1–0 | 2–0 | 2–1 | 0–0 | 1–0 |
| Fulham | 1–1 | 4–1 | 6–2 | 2–0 | 1–1 | 6–2 | 2–0 | 1–3 | 0–0 | — | 1–2 | 2–0 | 7–0 | 1–1 | 3–0 | 0–1 | 2–1 | 3–0 | 4–1 | 1–2 | 0–1 | 3–0 | 3–1 | 3–0 |
| Huddersfield Town | 0–3 | 2–1 | 0–0 | 3–2 | 3–2 | 2–0 | 2–1 | 1–1 | 2–0 | 1–5 | — | 2–0 | 2–0 | 1–2 | 1–0 | 0–2 | 3–0 | 1–0 | 2–2 | 4–0 | 0–0 | 1–1 | 1–1 | 1–0 |
| Hull City | 0–0 | 0–2 | 2–0 | 2–0 | 1–1 | 2–2 | 2–1 | 0–1 | 0–1 | 0–1 | 0–1 | — | 1–3 | 2–0 | 2–1 | 1–1 | 1–2 | 0–1 | 0–3 | 3–0 | 1–3 | 0–2 | 2–0 | 0–2 |
| Luton Town | 3–2 | 2–1 | 0–5 | 0–0 | 1–1 | 2–1 | 1–2 | 5–0 | 1–0 | 1–1 | 0–0 | 1–0 | — | 3–1 | 2–2 | 1–0 | 3–0 | 4–0 | 1–2 | 1–0 | 0–0 | 0–1 | 3–3 | 2–0 |
| Middlesbrough | 1–0 | 2–0 | 0–2 | 1–1 | 1–2 | 2–1 | 2–0 | 1–0 | 4–1 | 0–1 | 0–2 | 0–1 | 2–1 | — | 1–1 | 2–0 | 2–0 | 1–2 | 2–3 | 2–1 | 2–0 | 3–1 | 1–0 | 2–1 |
| Millwall | 1–1 | 4–1 | 3–1 | 1–1 | 2–1 | 1–0 | 2–1 | 1–1 | 1–1 | 1–2 | 2–0 | 2–1 | 0–2 | 0–0 | — | 0–1 | 3–0 | 0–0 | 2–0 | 1–0 | 1–0 | 2–1 | 0–1 | 2–0 |
| Nottingham Forest | 1–2 | 3–0 | 2–0 | 1–2 | 2–1 | 2–0 | 1–2 | 2–0 | 2–1 | 0–4 | 0–1 | 2–1 | 0–0 | 0–2 | 1–1 | — | 2–0 | 3–0 | 3–1 | 4–0 | 1–1 | 2–2 | 5–1 | 4–0 |
| Peterborough United | 0–0 | 0–0 | 3–0 | 2–1 | 5–0 | 2–3 | 2–2 | 1–4 | 2–1 | 0–1 | 1–1 | 0–3 | 1–1 | 0–4 | 2–1 | 0–1 | — | 0–1 | 2–1 | 0–0 | 0–2 | 2–2 | 2–3 | 0–1 |
| Preston North End | 2–1 | 2–1 | 1–1 | 1–4 | 1–0 | 2–2 | 1–2 | 2–1 | 0–0 | 1–1 | 0–0 | 1–4 | 2–0 | 4–1 | 1–1 | 0–0 | 1–0 | — | 2–1 | 2–3 | 2–2 | 1–1 | 3–1 | 1–1 |
| Queens Park Rangers | 0–1 | 2–2 | 2–0 | 1–0 | 2–1 | 1–2 | 1–2 | 2–0 | 1–0 | 0–2 | 1–0 | 1–1 | 2–0 | 2–2 | 1–1 | 1–1 | 1–3 | 3–2 | — | 4–0 | 1–3 | 0–2 | 0–0 | 1–0 |
| Reading | 0–2 | 1–0 | 2–1 | 1–0 | 2–3 | 2–3 | 1–2 | 2–3 | 2–2 | 0–7 | 3–4 | 1–1 | 0–2 | 1–0 | 0–1 | 1–1 | 3–1 | 2–1 | 3–3 | — | 0–1 | 2–1 | 4–4 | 0–1 |
| Sheffield United | 0–0 | 2–0 | 0–1 | 1–0 | 0–1 | 2–0 | 1–0 | 0–0 | 1–0 | 4–0 | 1–2 | 0–0 | 2–0 | 4–1 | 1–2 | 1–1 | 6–2 | 2–2 | 1–0 | 1–2 | — | 2–1 | 4–0 | 2–0 |
| Stoke City | 0–1 | 1–1 | 2–2 | 0–1 | 0–1 | 0–1 | 3–3 | 1–1 | 1–2 | 2–3 | 2–1 | 2–0 | 1–2 | 0–0 | 2–0 | 1–0 | 2–0 | 1–2 | 1–0 | 3–2 | 1–0 | — | 3–0 | 1–0 |
| Swansea City | 3–3 | 1–1 | 0–0 | 1–0 | 1–1 | 3–1 | 3–0 | 3–1 | 2–1 | 1–5 | 1–0 | 0–0 | 0–1 | 1–1 | 0–0 | 1–4 | 3–0 | 1–0 | 0–1 | 2–3 | 0–0 | 1–3 | — | 2–1 |
| West Bromwich Albion | 2–0 | 4–0 | 1–0 | 0–0 | 2–1 | 3–0 | 1–1 | 0–0 | 0–0 | 1–0 | 2–2 | 1–0 | 3–2 | 1–1 | 1–1 | 0–0 | 3–0 | 0–2 | 2–1 | 1–0 | 4–0 | 1–3 | 0–2 | — |

## League One
### Table

| Pos | Teamvte | Pld | W | D | L | GF | GA | GD | Pts | Promotion, qualification or relegation |
| 1 | Wigan Athletic (C, P) | 46 | 27 | 11 | 8 | 82 | 44 | +38 | 92 | Promotion to EFL Championship |
| 2 | Rotherham United (P) | 46 | 27 | 9 | 10 | 70 | 33 | +37 | 90 | Promotion to EFL Championship |
| 3 | Milton Keynes Dons | 46 | 26 | 11 | 9 | 78 | 44 | +34 | 89 | Qualification for League One play-offs |
| 4 | Sheffield Wednesday | 46 | 24 | 13 | 9 | 78 | 50 | +28 | 85 | Qualification for League One play-offs |
| 5 | Sunderland (O, P) | 46 | 24 | 12 | 10 | 79 | 53 | +26 | 84 | Qualification for League One play-offs |
| 6 | Wycombe Wanderers | 46 | 23 | 14 | 9 | 75 | 51 | +24 | 83 | Qualification for League One play-offs |
| 7 | Plymouth Argyle | 46 | 23 | 11 | 12 | 68 | 48 | +20 | 80 | |
| 8 | Oxford United | 46 | 22 | 10 | 14 | 82 | 59 | +23 | 76 | |
| 9 | Bolton Wanderers | 46 | 21 | 10 | 15 | 74 | 57 | +17 | 73 | |
| 10 | Portsmouth | 46 | 20 | 13 | 13 | 68 | 51 | +17 | 73 | |
| 11 | Ipswich Town | 46 | 18 | 16 | 12 | 67 | 46 | +21 | 70 | |
| 12 | Accrington Stanley | 46 | 17 | 10 | 19 | 61 | 80 | −19 | 61 | |
| 13 | Charlton Athletic | 46 | 17 | 8 | 21 | 55 | 59 | −4 | 59 | |
| 14 | Cambridge United | 46 | 15 | 13 | 18 | 56 | 74 | −18 | 58 | |
| 15 | Cheltenham Town | 46 | 13 | 17 | 16 | 66 | 80 | −14 | 56 | |
| 16 | Burton Albion | 46 | 14 | 11 | 21 | 51 | 67 | −16 | 53 | |
| 17 | Lincoln City | 46 | 14 | 10 | 22 | 55 | 63 | −8 | 52 | |
| 18 | Shrewsbury Town | 46 | 12 | 14 | 20 | 47 | 51 | −4 | 50 | |
| 19 | Morecambe | 46 | 10 | 12 | 24 | 57 | 88 | −31 | 42 | |
| 20 | Fleetwood Town | 46 | 8 | 16 | 22 | 62 | 82 | −20 | 40 | |
| 21 | Gillingham (R) | 46 | 8 | 16 | 22 | 35 | 69 | −34 | 40 | Relegation to EFL League Two |
| 22 | Doncaster Rovers (R) | 46 | 10 | 8 | 28 | 37 | 82 | −45 | 38 | Relegation to EFL League Two |
| 23 | AFC Wimbledon (R) | 46 | 6 | 19 | 21 | 49 | 75 | −26 | 37 | Relegation to EFL League Two |
| 24 | Crewe Alexandra (R) | 46 | 7 | 8 | 31 | 37 | 83 | −46 | 29 | Relegation to EFL League Two |

### Play-offs

| Semi-finals | Semi-finals | Semi-finals | Semi-finals | Semi-finals | Final | Final | Final |
| 3 | Milton Keynes Dons | 0 | 1 | 1 | | | |
| 6 | Wycombe Wanderers | 2 | 0 | 2 | | | |
| 6 | Wycombe Wanderers | 2 | 0 | 2 | 6 | Wycombe Wanderers | 0 |
| | | | | | 5 | Sunderland | 2 |
| 4 | Sheffield Wednesday | 0 | 1 | 1 | 5 | Sunderland | 2 |
| 5 | Sunderland | 1 | 1 | 2 | | | |
First leg
Second leg
Wycombe Wanderers won 2–1 on aggregate.
Sunderland won 2–1 on aggregate.

### Results

| Home \ Away | ACC | WIM | BOL | BRT | CAM | CHA | CHE | CRE | DON | FLE | GIL | IPS | LIN | MKD | MOR | OXF | PLY | POR | ROT | SHW | SHR | SUN | WIG | WYC |
| Accrington Stanley | — | 0–2 | 1–0 | 0–0 | 2–1 | 2–1 | 4–4 | 4–1 | 1–0 | 5–1 | 1–2 | 2–1 | 2–1 | 1–1 | 2–2 | 2–0 | 1–4 | 2–2 | 1–0 | 2–3 | 1–0 | 1–1 | 1–4 | 3–2 |
| AFC Wimbledon | 3–4 | — | 3–3 | 1–1 | 0–1 | 1–1 | 2–2 | 3–2 | 2–2 | 2–2 | 1–1 | 0–2 | 0–2 | 1–1 | 0–0 | 3–1 | 0–1 | 0–0 | 0–1 | 2–2 | 1–1 | 1–1 | 0–2 | 1–1 |
| Bolton Wanderers | 3–1 | 4–0 | — | 0–0 | 2–0 | 2–1 | 2–2 | 2–0 | 3–0 | 4–2 | 2–2 | 2–0 | 3–1 | 3–3 | 1–1 | 2–1 | 0–1 | 1–1 | 0–2 | 1–1 | 2–1 | 6–0 | 0–4 | 0–2 |
| Burton Albion | 4–0 | 1–1 | 3–1 | — | 2–2 | 0–1 | 1–1 | 4–1 | 2–0 | 3–2 | 1–1 | 2–1 | 1–2 | 0–1 | 3–2 | 1–3 | 0–0 | 2–1 | 2–0 | 0–2 | 0–2 | 1–0 | 0–0 | 1–2 |
| Cambridge United | 2–0 | 1–0 | 1–0 | 3–0 | — | 0–2 | 2–2 | 1–0 | 3–1 | 2–2 | 0–2 | 2–2 | 1–5 | 0–1 | 2–1 | 1–1 | 2–0 | 0–0 | 0–1 | 1–1 | 0–0 | 1–2 | 2–2 | 1–4 |
| Charlton Athletic | 2–3 | 3–2 | 1–4 | 2–0 | 2–0 | — | 1–2 | 2–0 | 4–0 | 2–0 | 1–0 | 2–0 | 1–2 | 0–2 | 2–3 | 0–4 | 2–0 | 2–2 | 1–1 | 0–0 | 2–0 | 0–0 | 0–2 | 0–1 |
| Cheltenham Town | 1–0 | 3–1 | 1–2 | 1–1 | 0–5 | 1–1 | — | 1–2 | 4–0 | 2–0 | 2–2 | 2–1 | 2–2 | 1–1 | 3–1 | 1–0 | 0–2 | 1–0 | 0–2 | 2–2 | 2–1 | 2–1 | 0–0 | 1–3 |
| Crewe Alexandra | 0–1 | 3–1 | 0–1 | 2–0 | 2–2 | 2–1 | 1–1 | — | 1–1 | 1–3 | 2–0 | 1–1 | 2–0 | 1–4 | 1–3 | 0–1 | 1–4 | 1–3 | 0–2 | 0–2 | 0–0 | 0–4 | 0–2 | 1–3 |
| Doncaster Rovers | 2–0 | 1–2 | 1–2 | 2–0 | 1–1 | 0–1 | 3–2 | 2–0 | — | 0–1 | 0–1 | 0–1 | 0–0 | 2–1 | 1–0 | 1–2 | 1–3 | 0–0 | 0–5 | 1–3 | 1–0 | 0–3 | 1–2 | 0–2 |
| Fleetwood Town | 1–2 | 1–1 | 3–0 | 0–1 | 1–1 | 1–2 | 3–2 | 3–0 | 0–0 | — | 2–1 | 0–2 | 1–1 | 1–1 | 1–2 | 2–3 | 3–3 | 0–1 | 1–0 | 2–3 | 0–3 | 2–2 | 2–3 | 3–3 |
| Gillingham | 0–0 | 0–0 | 0–3 | 1–3 | 1–0 | 1–1 | 0–2 | 1–0 | 1–0 | 0–0 | — | 0–4 | 1–1 | 1–4 | 2–1 | 2–7 | 0–2 | 0–1 | 0–2 | 0–0 | 0–0 | 1–2 | 0–2 | 1–1 |
| Ipswich Town | 2–1 | 2–2 | 2–5 | 3–0 | 0–1 | 4–0 | 0–0 | 2–1 | 6–0 | 2–1 | 1–0 | — | 2–0 | 2–2 | 2–2 | 0–0 | 1–0 | 0–0 | 0–2 | 1–1 | 2–1 | 1–1 | 2–2 | 1–0 |
| Lincoln City | 0–1 | 0–1 | 0–1 | 1–2 | 0–1 | 2–1 | 3–0 | 2–1 | 0–1 | 2–1 | 0–2 | 0–1 | — | 2–3 | 2–1 | 2–0 | 2–2 | 0–3 | 1–1 | 3–1 | 1–1 | 0–0 | 1–3 | 1–1 |
| Milton Keynes Dons | 2–0 | 1–0 | 2–0 | 1–0 | 4–1 | 2–1 | 3–1 | 2–1 | 0–1 | 3–3 | 0–0 | 0–0 | 2–1 | — | 2–0 | 1–2 | 1–1 | 1–0 | 0–3 | 2–3 | 2–0 | 1–2 | 1–1 | 1–0 |
| Morecambe | 3–3 | 3–4 | 1–1 | 3–0 | 0–2 | 2–2 | 1–3 | 1–2 | 4–3 | 0–0 | 1–1 | 1–1 | 2–0 | 0–4 | — | 2–1 | 1–1 | 1–1 | 0–1 | 1–0 | 2–0 | 0–1 | 1–2 | 3–2 |
| Oxford United | 5–1 | 3–0 | 2–3 | 4–1 | 4–2 | 2–1 | 1–1 | 1–0 | 1–1 | 3–1 | 1–1 | 1–1 | 3–1 | 1–0 | 3–1 | — | 1–3 | 3–2 | 0–0 | 3–2 | 2–0 | 1–2 | 2–3 | 0–0 |
| Plymouth Argyle | 4–0 | 2–0 | 3–0 | 2–1 | 1–1 | 1–0 | 2–0 | 1–1 | 2–1 | 1–1 | 1–0 | 2–1 | 1–2 | 0–5 | 2–0 | 1–0 | — | 1–0 | 0–1 | 3–0 | 1–0 | 0–0 | 1–2 | 0–3 |
| Portsmouth | 4–0 | 2–1 | 1–0 | 2–1 | 1–2 | 1–2 | 1–1 | 2–0 | 4–0 | 3–3 | 3–1 | 0–4 | 3–2 | 1–2 | 2–0 | 3–2 | 2–2 | — | 3–0 | 0–0 | 1–0 | 4–0 | 3–2 | 0–0 |
| Rotherham United | 1–0 | 3–0 | 2–1 | 3–1 | 3–1 | 0–1 | 1–0 | 1–1 | 2–0 | 2–4 | 5–1 | 1–0 | 2–1 | 1–2 | 2–0 | 2–1 | 2–0 | 4–1 | — | 0–2 | 0–3 | 5–1 | 1–1 | 0–0 |
| Sheffield Wednesday | 1–1 | 2–1 | 1–0 | 5–2 | 6–0 | 2–0 | 4–1 | 1–0 | 2–0 | 1–0 | 1–1 | 1–0 | 1–1 | 2–1 | 2–0 | 1–2 | 4–2 | 4–1 | 0–2 | — | 1–1 | 3–0 | 1–0 | 2–2 |
| Shrewsbury Town | 0–0 | 2–1 | 0–1 | 0–1 | 4–1 | 1–0 | 3–1 | 1–1 | 3–3 | 1–1 | 2–1 | 1–1 | 1–0 | 1–0 | 5–0 | 1–2 | 0–3 | 1–2 | 0–0 | 1–0 | — | 1–1 | 0–3 | 1–2 |
| Sunderland | 2–1 | 1–0 | 1–0 | 1–1 | 5–1 | 0–1 | 5–0 | 2–0 | 1–2 | 3–1 | 1–0 | 2–0 | 1–3 | 1–2 | 5–0 | 1–1 | 2–1 | 1–0 | 1–1 | 5–0 | 3–2 | — | 2–1 | 3–1 |
| Wigan Athletic | 3–0 | 1–0 | 1–1 | 2–0 | 1–2 | 2–1 | 2–0 | 2–0 | 2–1 | 2–0 | 3–2 | 1–1 | 1–2 | 1–2 | 4–1 | 1–1 | 1–1 | 1–0 | 1–0 | 1–2 | 2–1 | 0–3 | — | 1–1 |
| Wycombe Wanderers | 2–1 | 2–2 | 1–0 | 2–1 | 3–0 | 2–1 | 5–5 | 2–1 | 2–0 | 1–0 | 2–0 | 1–4 | 1–0 | 0–1 | 4–3 | 2–0 | 2–0 | 0–1 | 0–0 | 1–0 | 0–0 | 3–3 | 1–3 | — |

## League Two
### Table

| Pos | Teamvte | Pld | W | D | L | GF | GA | GD | Pts | Promotion, qualification or relegation |
| 1 | Forest Green Rovers (C, P) | 46 | 23 | 15 | 8 | 75 | 44 | +31 | 84 | Promotion to EFL League One |
| 2 | Exeter City (P) | 46 | 23 | 15 | 8 | 65 | 41 | +24 | 84 | Promotion to EFL League One |
| 3 | Bristol Rovers (P) | 46 | 23 | 11 | 12 | 71 | 49 | +22 | 80 | Promotion to EFL League One |
| 4 | Northampton Town | 46 | 23 | 11 | 12 | 60 | 38 | +22 | 80 | Qualification for League Two play-offs |
| 5 | Port Vale (O, P) | 46 | 22 | 12 | 12 | 67 | 46 | +21 | 78 | Qualification for League Two play-offs |
| 6 | Swindon Town | 46 | 22 | 11 | 13 | 77 | 54 | +23 | 77 | Qualification for League Two play-offs |
| 7 | Mansfield Town | 46 | 22 | 11 | 13 | 67 | 52 | +15 | 77 | Qualification for League Two play-offs |
| 8 | Sutton United | 46 | 22 | 10 | 14 | 69 | 53 | +16 | 76 | |
| 9 | Tranmere Rovers | 46 | 21 | 12 | 13 | 53 | 40 | +13 | 75 | |
| 10 | Salford City | 46 | 19 | 13 | 14 | 60 | 46 | +14 | 70 | |
| 11 | Newport County | 46 | 19 | 12 | 15 | 67 | 58 | +9 | 69 | |
| 12 | Crawley Town | 46 | 17 | 10 | 19 | 56 | 66 | −10 | 61 | |
| 13 | Leyton Orient | 46 | 14 | 16 | 16 | 62 | 47 | +15 | 58 | |
| 14 | Bradford City | 46 | 14 | 16 | 16 | 53 | 55 | −2 | 58 | |
| 15 | Colchester United | 46 | 14 | 13 | 19 | 48 | 60 | −12 | 55 | |
| 16 | Walsall | 46 | 14 | 12 | 20 | 47 | 60 | −13 | 54 | |
| 17 | Hartlepool United | 46 | 14 | 12 | 20 | 44 | 64 | −20 | 54 | |
| 18 | Rochdale | 46 | 12 | 17 | 17 | 51 | 59 | −8 | 53 | |
| 19 | Harrogate Town | 46 | 14 | 11 | 21 | 64 | 75 | −11 | 53 | |
| 20 | Carlisle United | 46 | 14 | 11 | 21 | 39 | 62 | −23 | 53 | |
| 21 | Stevenage | 46 | 11 | 14 | 21 | 45 | 68 | −23 | 47 | |
| 22 | Barrow | 46 | 10 | 14 | 22 | 44 | 57 | −13 | 44 | |
| 23 | Oldham Athletic (R) | 46 | 9 | 11 | 26 | 46 | 75 | −29 | 38 | Relegation to National League |
| 24 | Scunthorpe United (R) | 46 | 4 | 14 | 28 | 29 | 90 | −61 | 26 | Relegation to National League |

### Play-offs

| Semi-finals | Semi-finals | Semi-finals | Semi-finals | Semi-finals | Final | Final | Final |
| 4 | Northampton Town | 1 | 0 | 1 | | | |
| 7 | Mansfield Town | 2 | 1 | 3 | | | |
| 7 | Mansfield Town | 2 | 1 | 3 | 7 | Mansfield Town | 0 |
| | | | | | 5 | Port Vale | 3 |
| 5 | Port Vale | 1 | 1 | 2 | 5 | Port Vale | 3 |
| 6 | Swindon Town | 2 | 0 | 2 | | | |
First leg
Second leg
Mansfield Town won 3–1 on aggregate.
Port Vale won 2-2 on aggregate, 6-5 on penalties.

### Results

| Home \ Away | BRW | BRA | BRI | CAR | COL | CRA | EXE | FOR | HAR | HAT | LEY | MAN | NEW | NOR | OLD | POR | ROC | SAL | SCU | STE | SUT | SWI | TRA | WAL |
| Barrow | — | 1–2 | 1–1 | 1–2 | 2–3 | 0–1 | 0–0 | 4–0 | 0–0 | 3–2 | 1–1 | 1–3 | 2–1 | 1–3 | 0–0 | 1–2 | 1–2 | 0–2 | 1–1 | 0–0 | 1–0 | 2–0 | 1–1 | 1–1 |
| Bradford City | 1–1 | — | 2–2 | 2–0 | 0–0 | 1–2 | 0–1 | 1–1 | 1–3 | 1–3 | 1–1 | 0–2 | 0–0 | 1–1 | 2–1 | 1–2 | 2–0 | 2–1 | 2–1 | 4–1 | 2–2 | 1–2 | 1–1 | 1–1 |
| Bristol Rovers | 1–0 | 2–1 | — | 3–0 | 1–0 | 1–0 | 1–1 | 0–0 | 3–0 | 2–0 | 1–3 | 0–0 | 1–3 | 2–1 | 1–0 | 1–2 | 4–2 | 1–0 | 7–0 | 0–2 | 2–0 | 1–3 | 2–2 | 1–0 |
| Carlisle United | 0–0 | 2–0 | 1–0 | — | 0–0 | 1–1 | 0–1 | 0–2 | 0–2 | 0–0 | 1–1 | 1–0 | 1–2 | 2–1 | 0–0 | 1–3 | 2–0 | 2–1 | 2–2 | 2–1 | 0–2 | 0–3 | 0–1 | 1–0 |
| Colchester United | 0–2 | 3–0 | 1–1 | 2–2 | — | 0–1 | 3–1 | 0–1 | 1–0 | 1–2 | 2–2 | 1–1 | 1–1 | 0–1 | 1–1 | 1–0 | 1–1 | 0–2 | 2–1 | 0–2 | 1–3 | 1–1 | 1–0 | 2–2 |
| Crawley Town | 1–0 | 2–1 | 1–2 | 2–1 | 3–1 | — | 1–3 | 2–1 | 2–2 | 0–1 | 0–2 | 1–2 | 1–1 | 0–0 | 2–2 | 1–4 | 1–0 | 2–1 | 0–0 | 2–2 | 0–1 | 3–1 | 0–1 | 1–0 |
| Exeter City | 2–1 | 0–0 | 4–1 | 2–1 | 2–0 | 2–1 | — | 0–0 | 4–3 | 0–0 | 1–0 | 2–1 | 2–2 | 1–2 | 2–1 | 0–1 | 2–0 | 0–0 | 2–0 | 2–1 | 2–0 | 3–1 | 0–1 | 2–2 |
| Forest Green Rovers | 2–0 | 0–2 | 2–0 | 3–0 | 2–0 | 6–3 | 0–0 | — | 1–3 | 1–1 | 1–1 | 1–0 | 2–0 | 1–0 | 2–0 | 0–2 | 2–1 | 3–1 | 1–0 | 2–0 | 2–1 | 0–2 | 0–0 | 0–1 |
| Harrogate Town | 2–1 | 2–0 | 0–1 | 3–0 | 1–2 | 1–3 | 1–1 | 1–4 | — | 1–2 | 0–3 | 0–0 | 2–2 | 1–2 | 3–0 | 1–1 | 3–2 | 0–2 | 6–1 | 0–0 | 0–2 | 1–4 | 2–2 | 1–1 |
| Hartlepool United | 3–1 | 0–2 | 1–0 | 2–1 | 0–2 | 1–0 | 1–1 | 1–3 | 3–2 | — | 0–0 | 2–2 | 1–2 | 2–1 | 0–0 | 0–1 | 2–1 | 0–2 | 0–0 | 1–1 | 1–1 | 0–3 | 1–0 | 2–0 |
| Leyton Orient | 2–0 | 2–0 | 0–2 | 0–1 | 0–1 | 1–2 | 3–0 | 1–1 | 0–2 | 5–0 | — | 0–0 | 0–1 | 2–4 | 4–0 | 0–0 | 3–1 | 0–2 | 3–0 | 2–2 | 4–1 | 4–1 | 0–1 | 0–0 |
| Mansfield Town | 0–1 | 2–3 | 2–1 | 1–0 | 2–1 | 2–0 | 2–1 | 2–2 | 1–3 | 3–2 | 2–0 | — | 2–1 | 1–0 | 0–0 | 1–1 | 1–1 | 2–1 | 3–1 | 2–0 | 2–3 | 3–2 | 2–0 | 2–0 |
| Newport County | 2–1 | 0–0 | 1–0 | 2–2 | 1–2 | 1–2 | 0–1 | 1–1 | 4–0 | 2–3 | 2–2 | 1–1 | — | 0–1 | 3–3 | 2–1 | 0–2 | 0–2 | 3–0 | 5–0 | 3–2 | 1–2 | 4–2 | 2–1 |
| Northampton Town | 0–1 | 0–0 | 0–1 | 3–0 | 3–0 | 0–1 | 1–1 | 1–1 | 3–0 | 2–0 | 1–0 | 2–0 | 1–0 | — | 2–1 | 1–0 | 1–3 | 1–0 | 2–0 | 3–0 | 0–2 | 1–1 | 3–2 | 1–1 |
| Oldham Athletic | 0–3 | 2–0 | 2–1 | 1–2 | 1–2 | 3–3 | 0–2 | 5–5 | 1–2 | 0–0 | 2–0 | 1–2 | 0–1 | 0–2 | — | 3–2 | 0–0 | 1–2 | 1–3 | 3–0 | 1–3 | 1–3 | 0–1 | 1–3 |
| Port Vale | 3–1 | 1–1 | 1–3 | 0–0 | 3–0 | 4–1 | 0–0 | 1–1 | 2–0 | 2–0 | 3–2 | 3–1 | 1–2 | 0–0 | 3–2 | — | 2–3 | 0–1 | 1–0 | 2–0 | 2–0 | 1–3 | 0–0 | 0–1 |
| Rochdale | 0–0 | 0–0 | 3–4 | 2–0 | 1–1 | 0–1 | 1–1 | 1–2 | 3–3 | 2–1 | 2–2 | 0–1 | 3–0 | 1–0 | 0–1 | 1–1 | — | 1–1 | 0–0 | 2–2 | 3–2 | 0–0 | 1–0 | 1–0 |
| Salford City | 2–2 | 1–0 | 1–1 | 2–1 | 0–3 | 2–1 | 1–2 | 1–1 | 2–0 | 2–0 | 1–1 | 2–2 | 3–0 | 2–2 | 2–0 | 0–1 | 0–0 | — | 5–1 | 1–0 | 0–0 | 0–1 | 1–1 | 2–1 |
| Scunthorpe United | 0–1 | 1–1 | 2–3 | 0–1 | 1–3 | 2–1 | 0–4 | 0–2 | 0–3 | 1–1 | 1–1 | 0–4 | 0–1 | 0–0 | 0–1 | 0–1 | 1–2 | 1–1 | — | 1–1 | 1–1 | 1–3 | 1–0 | 1–0 |
| Stevenage | 1–0 | 0–1 | 0–4 | 0–2 | 1–0 | 2–1 | 2–2 | 0–4 | 3–0 | 2–0 | 0–0 | 1–2 | 0–2 | 1–2 | 0–1 | 1–1 | 1–0 | 4–2 | 1–1 | — | 3–3 | 1–1 | 2–0 | 3–1 |
| Sutton United | 1–0 | 1–4 | 1–1 | 4–0 | 3–2 | 3–0 | 2–1 | 1–1 | 1–0 | 1–0 | 1–0 | 2–0 | 1–0 | 0–0 | 1–2 | 4–3 | 3–0 | 0–0 | 4–1 | 2–1 | — | 1–2 | 1–1 | 0–1 |
| Swindon Town | 2–1 | 1–3 | 1–1 | 1–2 | 0–0 | 1–1 | 1–2 | 2–1 | 1–1 | 3–1 | 1–2 | 1–0 | 0–1 | 5–2 | 1–0 | 1–2 | 2–2 | 1–2 | 3–0 | 0–0 | 2–1 | — | 0–0 | 5–0 |
| Tranmere Rovers | 2–0 | 2–1 | 1–1 | 2–2 | 2–0 | 2–1 | 2–0 | 0–4 | 2–0 | 1–0 | 1–0 | 3–2 | 0–1 | 0–2 | 2–0 | 1–1 | 2–0 | 2–0 | 4–0 | 1–0 | 0–1 | 3–0 | — | 1–0 |
| Walsall | 2–2 | 1–2 | 1–2 | 1–0 | 3–0 | 1–1 | 0–2 | 1–3 | 1–3 | 3–1 | 0–2 | 3–1 | 3–3 | 0–1 | 2–1 | 2–0 | 0–0 | 2–1 | 1–1 | 1–0 | 1–0 | 0–3 | 1–0 | — |

## Managerial changes

| Team | Outgoing manager | Manner of departure | Date of vacancy | Position in table | Incoming manager | Date of appointment | Position in table |
| Northampton Town | Keith Curle | Sacked | 10 February 2021 | 2020–21 English Football League | Jon Brady | 8 May 2021 | Pre-season |
| Barrow | Michael Jolley | Sacked | 21 February 2021 | 2020–21 English Football League | Mark Cooper | 28 May 2021 | Pre-season |
| Colchester United | Steve Ball | Sacked | 23 February 2021 | 2020–21 English Football League | Hayden Mullins | 13 May 2021 | Pre-season |
| Leyton Orient | Ross Embleton | Sacked | 27 February 2021 | 2020–21 English Football League | Kenny Jackett | 21 May 2021 | Pre-season |
| Doncaster Rovers | Darren Moore | Appointed by Sheffield Wednesday | 1 March 2021 | 2020–21 English Football League | Richie Wellens | 17 May 2021 | Pre-season |
| Sheffield United | Chris Wilder | Sacked | 13 March 2021 | 2020–21 Premier League | Slaviša Jokanović | 27 May 2021 | Pre-season |
| Preston North End | Alex Neil | Sacked | 21 March 2021 | 2020–21 English Football League | Frankie McAvoy | 10 May 2021 | Pre-season |
| Forest Green Rovers | Mark Cooper | Sacked | 11 April 2021 | 2020–21 English Football League | Rob Edwards | 27 May 2021 | Pre-season |
| Swindon Town | John Sheridan | Resigned | 18 April 2021 | 2020–21 English Football League | John McGreal | 26 May 2021 | Pre-season |
| Walsall | Brian Dutton | Sacked | 10 May 2021 | Pre-season | Matthew Taylor | 19 May 2021 | Pre-season |
| Bradford City | Mark Trueman Conor Sellars | Sacked | 10 May 2021 | Pre-season | Derek Adams | 4 June 2021 | Pre-season |
| Tranmere Rovers | Keith Hill | Sacked | 11 May 2021 | 2020–21 English Football League | Micky Mellon | 31 May 2021 | Pre-season |
| West Bromwich Albion | Sam Allardyce | Resigned | 19 May 2021 | 2020–21 Premier League | Valérien Ismaël | 24 June 2021 | Pre-season |
| Morecambe | Derek Adams | Resigned | 2 June 2021 | Pre-season | Stephen Robinson | 7 June 2021 | Pre-season |
| Barnsley | Valérien Ismaël | Appointed by West Bromwich Albion | 24 June 2021 | Pre-season | Markus Schopp | 29 June 2021 | Pre-season |
| Swindon Town | John McGreal | Resigned | 25 June 2021 | Pre-season | Ben Garner | 21 July 2021 | Pre-season |
| Bournemouth | Jonathan Woodgate | End of contract | 27 June 2021 | Pre-season | Scott Parker | 28 June 2021 | Pre-season |
| Fulham | Scott Parker | Appointed by Bournemouth | 28 June 2021 | Pre-season | Marco Silva | 1 July 2021 | Pre-season |
| Rochdale | Brian Barry-Murphy | Resigned | 30 June 2021 | Pre-season | Robbie Stockdale | 10 July 2021 | Pre-season |
| Swansea City | Steve Cooper | Resigned | 21 July 2021 | Pre-season | Russell Martin | 1 August 2021 | Pre-season |
| Milton Keynes Dons | Russell Martin | Appointed by Swansea City | 1 August 2021 | Pre-season | Liam Manning | 13 August 2021 | 8th |
| Nottingham Forest | Chris Hughton | Sacked | 16 September 2021 | 24th | Steve Cooper | 21 September 2021 | 24th |
| Newport County | Michael Flynn | Resigned | 1 October 2021 | 15th | James Rowberry | 19 October 2021 | 13th |
| Carlisle United | Chris Beech | Sacked | 10 October 2021 | 22nd | Keith Millen | 26 October 2021 | 22nd |
| Charlton Athletic | Nigel Adkins | Sacked | 21 October 2021 | 22nd | Johnnie Jackson | 17 December 2021 | 11th |
| Cardiff City | Mick McCarthy | Mutual consent | 23 October 2021 | 21st | Steve Morison | 12 November 2021 | 20th |
| Scunthorpe United | Neil Cox | Sacked | 1 November 2021 | 24th | Keith Hill | 5 November 2021 | 24th |
| Barnsley | Markus Schopp | Sacked | 1 November 2021 | 23rd | Poya Asbaghi | 17 November 2021 | 23rd |
| Hartlepool United | Dave Challinor | Appointed by Stockport County | 1 November 2021 | 10th | Graeme Lee | 1 December 2021 | 17th |
| Middlesbrough | Neil Warnock | Mutual consent | 6 November 2021 | 14th | Chris Wilder | 7 November 2021 | 14th |
| Stevenage | Alex Revell | Sacked | 15 November 2021 | 21st | Paul Tisdale | 28 November 2021 | 21st |
| Fleetwood Town | Simon Grayson | Sacked | 24 November 2021 | 22nd | Stephen Crainey | 21 December 2021 | 18th |
| Oldham Athletic | Keith Curle | Sacked | 24 November 2021 | 22nd | John Sheridan | 22 January 2022 | 24th |
| Sheffield United | Slaviša Jokanović | Sacked | 25 November 2021 | 16th | Paul Heckingbottom | 25 November 2021 | 16th |
| Doncaster Rovers | Richie Wellens | Sacked | 2 December 2021 | 23rd | Gary McSheffrey | 29 December 2021 | 23rd |
| Ipswich Town | Paul Cook | Sacked | 4 December 2021 | 11th | Kieran McKenna | 16 December 2021 | 12th |
| Preston North End | Frankie McAvoy | Sacked | 6 December 2021 | 18th | Ryan Lowe | 7 December 2021 | 18th |
| Plymouth Argyle | Ryan Lowe | Appointed by Preston North End | 7 December 2021 | 4th | Steven Schumacher | 7 December 2021 | 4th |
| Gillingham | Steve Evans | Mutual consent | 9 January 2022 | 22nd | Neil Harris | 31 January 2022 | 23rd |
| Colchester United | Hayden Mullins | Sacked | 19 January 2022 | 22nd | Wayne Brown | 17 May 2022 | 2022–23 English Football League |
| Hull City | Grant McCann | Sacked | 25 January 2022 | 19th | Shota Arveladze | 27 January 2022 | 19th |
| Sunderland | Lee Johnson | Sacked | 30 January 2022 | 3rd | Alex Neil | 11 February 2022 | 4th |
| West Bromwich Albion | Valérien Ismaël | Sacked | 2 February 2022 | 5th | Steve Bruce | 3 February 2022 | 5th |
| Walsall | Matthew Taylor | Sacked | 9 February 2022 | 21st | Michael Flynn | 15 February 2022 | 18th |
| Bradford City | Derek Adams | Sacked | 15 February 2022 | 11th | Mark Hughes | 24 February 2022 | 14th |
| Reading | Veljko Paunović | Mutual consent | 19 February 2022 | 21st | Paul Ince | 16 May 2022 | 2022–23 English Football League |
| Peterborough United | Darren Ferguson | Resigned | 20 February 2022 | 23rd | Grant McCann | 24 February 2022 | 23rd |
| Morecambe | Stephen Robinson | Appointed by St Mirren | 22 February 2022 | 21st | Derek Adams | 24 February 2022 | 21st |
| Leyton Orient | Kenny Jackett | Sacked | 23 February 2022 | 18th | Richie Wellens | 9 March 2022 | 20th |
| Carlisle United | Keith Millen | Mutual Consent | 23 February 2022 | 23rd | Paul Simpson | 23 February 2022 | 23rd |
| Stevenage | Paul Tisdale | Sacked | 16 March 2022 | 22nd | Steve Evans | 16 March 2022 | 22nd |
| Barrow | Mark Cooper | Mutual consent | 20 March 2022 | 21st | Phil Brown | 21 March 2022 | 21st |
| AFC Wimbledon | Mark Robinson | Mutual consent | 28 March 2022 | 21st | Mark Bowen | 30 March 2022 | 21st |
| Crewe Alexandra | David Artell | Sacked | 11 April 2022 | 24th | Alex Morris | 28 April 2022 | 24th |
| Barnsley | Poya Asbaghi | Mutual consent | 24 April 2022 | 24th | Michael Duff | 13 June 2022 | 2022–23 English Football League |