# 2021–22 Serie B

The 2021–22 Serie B (known as the Serie BKT for sponsorship reasons) was the 90th season of the Serie B since its establishment in 1929.

## Changes

The following teams have changed division since the 2020–21 season:

## Teams
### Stadiums and locations

| Team | Home city | Stadium | Capacity | 2020–21 season |
| Alessandria | Alessandria | Giuseppe Moccagatta | 5,936 | Serie C play-off winners |
| Ascoli | Ascoli Piceno | Cino e Lillo Del Duca | 12,461 | 16th in Serie B |
| Benevento | Benevento | Ciro Vigorito | 16,867 | 18th in Serie A |
| Brescia | Brescia | Mario Rigamonti | 19,500 | 7th in Serie B |
| Cittadella | Cittadella (Padua) | Pier Cesare Tombolato | 7,623 | 6th in Serie B |
| Como | Como | Giuseppe Sinigaglia | 13,602 | Serie C Group A champions |
| Cosenza | Cosenza | San Vito-Gigi Marulla | 20,987 | 17th in Serie B |
| Cremonese | Cremona | Giovanni Zini | 20,641 | 13th in Serie B |
| Crotone | Crotone | Ezio Scida | 16,640 | 19th in Serie A |
| Frosinone | Frosinone | Benito Stirpe | 16,227 | 10th in Serie B |
| Lecce | Lecce | Via del Mare | 31,533 | 4th in Serie B |
| Monza | Monza | Brianteo | 10,000 | 3rd in Serie B |
| Parma | Parma | Ennio Tardini | 27,906 | 20th in Serie A |
| Perugia | Perugia | Renato Curi | 23,625 | Serie C Group B champions |
| Pisa | Pisa | Arena Garibaldi | 25,000 | 14th in Serie B |
| Pordenone | Pordenone | Guido Teghil (Lignano Sabbiadoro) | 5,000 | 15th in Serie B |
| Reggina | Reggio Calabria | Oreste Granillo | 27,543 | 11th in Serie B |
| SPAL | Ferrara | Paolo Mazza | 16,134 | 9th in Serie B |
| Ternana | Terni | Libero Liberati | 22,000 | Serie C Group C champions |
| Vicenza | Vicenza | Romeo Menti | 12,000 | 12th in Serie B |

### Personnel and kits

| Team | President | Manager | Captain | Kit manufacturer | Shirt sponsor (front) | Shirt sponsor (back) | Shirt sponsor (sleeve) | Shorts sponsor |
| Alessandria | Luca Di Masi | Moreno Longo | Giuseppe Prestia | Adidas | Y3K | Gruppo AMAG | ReLife Group | None |
| Ascoli | Carlo Neri | Andrea Sottil | Federico Dionisi | Νike | Fainplast Compounds/Ascoli Piceno Candidata a Capitale italiana della cultura 2024, Bricofer/Distretti Ecologici/FEVO/Rabona Mobile | Rabona Mobile/North Sixth Group/D&G Service 2008 | Ecotel Italia | Gruppo Boero |
| Benevento | Oreste Vigorito | Fabio Caserta | Gaetano Letizia | Nike | IVPC, Rillo Construzioni | Pasta Rummo | Gesesa | Comfort Zone |
| Brescia | Massimo Cellino | Eugenio Corini | Dimitri Bisoli | Kappa | Rigamonti Salumificio | OMR | Pardgroup | None |
| Cittadella | Andrea Gabrielli | Edoardo Gorini | Romano Perticone | Mizuno | Sirmax, Gruppo Gabrielli | Stylplex (H)/Quartzforms (A) | Pastificio Cecchin | Metalservice |
| Como | Dennis Wise | Giacomo Gattuso | Alessandro Bellemo | Legea | Mola | Acqua S. Bernardo | Randstad | Pulsee Luce e Gas |
| Cosenza | Eugenio Guarascio | Pierpaolo Bisoli | Luca Palmiero | Legea | Hexergia/Quattropuntozero | None | La Valle Viaggi | Supermercati Contè |
| Cremonese | Paolo Rossi | Fabio Pecchia | Daniel Ciofani | Acerbis | Ilta Inox (H)/Arinox (A), Arvedi | Fattorie Cremona | Synlab | Arvedi Tubi Acciaio |
| Crotone | Gianni Vrenna | Francesco Modesto | Nahuel Estévez | Zeus | San Vincenzo Salumi, Envì Group | Ford Vumbaca Group | Econet | GCM Industrie |
| Frosinone | Maurizio Stirpe | Fabio Grosso | Nicolò Brighenti | Zeus | Banca Popolare del Frusinate, Portobello | Polsinelli Enologia | Orsolini | Plasta Rei |
| Lecce | Saverio Sticchi Damiani | Marco Baroni | Fabio Lucioni | M908 | Links Management & Technology, Studio Sticchi Damiani/Asfalti Isolbit | Barocco SpA/DEGHI | Banca Popolare Pugliese | Asfalti Isolbit/Platino News |
| Monza | Paolo Berlusconi | Giovanni Stroppa | Mario Sampirisi | Lotto | WithU, U-Power | Pontenossa | Febal Casa | Dell'Orto |
| Parma | Kyle Krause | Giuseppe Iachini | Gianluigi Buffon | Erreà | Cetilar, Gravity Sport | EGO Airways | Canovi Coperture | COLSER Servizi |
| Perugia | Massimiliano Santopadre | Massimiliano Alvini | Gabriele Angella | Frankie Garage | Nutrihum, Vitakraft | Re Salmone | Sisas | Mericat Group |
| Pisa | Giuseppe Corrado | Luca D'Angelo | Robert Gucher | Adidas | Cetilar, Synlab/Ferramenta Piampiani/Pisanova | Hi-Turf Solution | Maiora-AB Yachts | Beapp/SEAC/Toni Luigi Scavi e Demolizioni/Cavarretta Assicurazioni |
| Pordenone | Mauro Lovisa | Bruno Tedino | Mirko Stefani | Givova | Omega Gruppo, 6sicuro.it | Lignano Sabbiadoro | Alea Office | CRO Area Giovani |
| Reggina | Luca Gallo | Roberto Stellone | Lorenzo Crisetig | Macron | Dalia/Centroriparo Bellè Gomme, Soseteg | Puliservice | Caffè Mauro | D. Caracciolo & figli |
| SPAL | Joe Tacopina | Roberto Venturato | Francesco Vicari | Macron | Omega Group | Errebi Technology | Adamant BioNRG | Golden Group |
| Ternana | Stefano Bandecchi | Cristiano Lucarelli | Marino Defendi | Macron | Unicusano, Terni Col Cuore | None | Orsolini | None |
| Vicenza | Renzo Rosso | Francesco Baldini | Stefano Giacomelli | Lotto | Diesel, Aon (H)/Fendt (A)/SC Saldatura Carpenteria (T) | Sicura (H)/Famila (A & T) | Legor (H) | Zanutta (H)/SC Saldatura Carpenteria (A)/Trivellato Industriali (T) |

### Managerial changes

| Team | Outgoing manager | Manner of departure | Date of vacancy | Position in table | Replaced by | Date of appointment |
| Lecce | Eugenio Corini | Sacked | 22 May 2021 | Pre-season | Marco Baroni | 1 July 2021 |
| Parma | Roberto D'Aversa | Sacked | 23 May 2021 | Pre-season | Enzo Maresca | 1 July 2021 |
| Monza | Cristian Brocchi | Mutual consent | 28 May 2021 | Pre-season | Giovanni Stroppa | 1 July 2021 |
| Perugia | Fabio Caserta | Mutual consent | 14 June 2021 | Pre-season | Massimiliano Alvini | 1 July 2021 |
| Reggina | Marco Baroni | End of contract | 30 June 2021 | Pre-season | Alfredo Aglietti | 1 July 2021 |
| Crotone | Serse Cosmi | End of contract | 30 June 2021 | Pre-season | Francesco Modesto | 1 July 2021 |
| Pordenone | Maurizio Domizzi | End of contract | 30 June 2021 | Pre-season | Massimo Paci | 1 July 2021 |
| Benevento | Filippo Inzaghi | End of contract | 30 June 2021 | Pre-season | Fabio Caserta | 1 July 2021 |
| Brescia | Pep Clotet | End of contract | 30 June 2021 | Pre-season | Filippo Inzaghi | 30 June 2021 |
| SPAL | Massimo Rastelli | End of contract | 30 June 2021 | Pre-season | Pep Clotet | 2 July 2021 |
| Cittadella | Roberto Venturato | End of contract | 30 June 2021 | Pre-season | Edoardo Gorini | 19 July 2021 |
| Cosenza | Roberto Occhiuzzi | Sacked | 22 July 2021 | Pre-season | Marco Zaffaroni | 6 August 2021 |
| Pordenone | Massimo Paci | Sacked | 30 August 2021 | 20th | Massimo Rastelli | 31 August 2021 |
| Vicenza | Domenico Di Carlo | Sacked | 22 September 2021 | 19th | Cristian Brocchi | 22 September 2021 |
| Pordenone | Massimo Rastelli | Sacked | 16 October 2021 | 20th | Bruno Tedino | 18 October 2021 |
| Crotone | Francesco Modesto | Sacked | 29 October 2021 | 18th | Pasquale Marino | 29 October 2021 |
| Parma | Enzo Maresca | Sacked | 23 November 2021 | 14th | Giuseppe Iachini | 23 November 2021 |
| Cosenza | Marco Zaffaroni | Sacked | 6 December 2021 | 16th | Roberto Occhiuzzi | 7 December 2021 |
| Crotone | Pasquale Marino | Sacked | 10 December 2021 | 18th | Francesco Modesto | 10 December 2021 |
| Reggina | Alfredo Aglietti | Sacked | 13 December 2021 | 13th | Domenico Toscano | 14 December 2021 |
| SPAL | Pep Clotet | Sacked | 5 January 2022 | 15th | Roberto Venturato | 5 January 2022 |
| Reggina | Domenico Toscano | Sacked | 23 January 2022 | 14th | Roberto Stellone | 24 January 2022 |
| Cosenza | Roberto Occhiuzzi | Sacked | 16 February 2022 | 17th | Pierpaolo Bisoli | 17 February 2022 |
| Brescia | Filippo Inzaghi | Sacked | 23 March 2022 | 5th | Eugenio Corini | 23 March 2022 |
| Vicenza | Cristian Brocchi | Sacked | 11 April 2022 | 18th | Francesco Baldini | 12 April 2022 |

## League table

| Pos | Teamvte | Pld | W | D | L | GF | GA | GD | Pts | Promotion, qualification or relegation |
| 1 | Lecce (C, P) | 38 | 19 | 14 | 5 | 59 | 31 | +28 | 71 | Promotion to Serie A |
| 2 | Cremonese (P) | 38 | 20 | 9 | 9 | 57 | 39 | +18 | 69 | Promotion to Serie A |
| 3 | Pisa | 38 | 18 | 13 | 7 | 48 | 35 | +13 | 67 | Qualification for promotion play-offs semi-finals |
| 4 | Monza (O, P) | 38 | 19 | 10 | 9 | 60 | 38 | +22 | 67 | Qualification for promotion play-offs semi-finals |
| 5 | Brescia | 38 | 17 | 15 | 6 | 55 | 35 | +20 | 66 | Qualification for promotion play-offs preliminary round |
| 6 | Ascoli | 38 | 19 | 8 | 11 | 52 | 42 | +10 | 65 | Qualification for promotion play-offs preliminary round |
| 7 | Benevento | 38 | 18 | 9 | 11 | 62 | 39 | +23 | 63 | Qualification for promotion play-offs preliminary round |
| 8 | Perugia | 38 | 14 | 16 | 8 | 40 | 32 | +8 | 58 | Qualification for promotion play-offs preliminary round |
| 9 | Frosinone | 38 | 15 | 13 | 10 | 58 | 45 | +13 | 58 | |
| 10 | Ternana | 38 | 15 | 9 | 14 | 58 | 61 | −3 | 54 | |
| 11 | Cittadella | 38 | 13 | 13 | 12 | 38 | 36 | +2 | 52 | |
| 12 | Parma | 38 | 11 | 16 | 11 | 48 | 43 | +5 | 49 | |
| 13 | Como | 38 | 11 | 14 | 13 | 49 | 54 | −5 | 47 | |
| 14 | Reggina | 38 | 13 | 9 | 16 | 31 | 49 | −18 | 46 | |
| 15 | SPAL | 38 | 9 | 15 | 14 | 46 | 54 | −8 | 42 | |
| 16 | Cosenza (O) | 38 | 8 | 11 | 19 | 36 | 59 | −23 | 35 | Qualification for relegation play-out |
| 17 | Vicenza (R) | 38 | 9 | 7 | 22 | 38 | 59 | −21 | 34 | Qualification for relegation play-out |
| 18 | Alessandria (R) | 38 | 8 | 10 | 20 | 37 | 59 | −22 | 34 | Relegation to Serie C |
| 19 | Crotone (R) | 38 | 4 | 14 | 20 | 41 | 61 | −20 | 26 | Relegation to Serie C |
| 20 | Pordenone (R) | 38 | 3 | 9 | 26 | 29 | 71 | −42 | 18 | Relegation to Serie C |
* 1 2 Pisa finished ahead of Monza on head-to-head points: Pisa 2–1 Monza, Monza 1–2 Pisa.
* 1 2 Perugia finished ahead of Frosinone on head-to-head points: Frosinone 0–0 Perugia, Perugia 3–0 Frosinone.
* ↑ Reggina were deducted 2 points for administrative irregularities.
* 1 2 Vicenza finished ahead of Alessandria on head-to-head points: Vicenza 2–1 Alessandria, Alessandria 0–1 Vicenza.

### Positions by round

The table lists the positions of teams after each week of matches. In order to preserve chronological evolvements, any postponed matches are not included to the round at which they were originally scheduled, but added to the full round they were played immediately afterwards.
| Team ╲ 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 |
| Lecce | 20 | 15 | 16 | 12 | 10 | 6 | 4 | 3 | 4 | 5 | 3 | 2 | 3 | 3 | 3 | 2 | 3 | 4 | 5 | 3 | 1 | 1 | 2 | 1 | 2 | 2 | 1 | 2 | 2 | 2 | 4 | 2 | 2 | 1 | 2 | 1 | 1 | 1 |
| Cremonese | 12 | 8 | 9 | 10 | 14 | 11 | 13 | 13 | 11 | 10 | 9 | 11 | 8 | 8 | 5 | 5 | 5 | 6 | 6 | 6 | 7 | 5 | 5 | 5 | 5 | 6 | 6 | 5 | 5 | 4 | 3 | 4 | 3 | 2 | 3 | 3 | 3 | 2 |
| Pisa | 7 | 3 | 2 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 3 | 2 | 1 | 2 | 1 | 1 | 1 | 1 | 1 | 2 | 3 | 4 | 3 | 4 | 5 | 4 | 3 | 1 | 3 | 2 | 3 | 4 | 6 | 5 | 4 | 4 | 3 |
| Monza | 1 | 10 | 5 | 3 | 6 | 3 | 2 | 2 | 5 | 6 | 7 | 8 | 5 | 6 | 8 | 6 | 6 | 3 | 4 | 5 | 4 | 2 | 1 | 2 | 3 | 1 | 3 | 1 | 3 | 1 | 1 | 1 | 1 | 3 | 1 | 2 | 2 | 4 |
| Brescia | 2 | 1 | 1 | 2 | 3 | 2 | 3 | 4 | 2 | 4 | 2 | 1 | 1 | 2 | 1 | 3 | 2 | 2 | 2 | 2 | 3 | 4 | 3 | 4 | 1 | 3 | 2 | 4 | 4 | 5 | 5 | 5 | 5 | 4 | 6 | 5 | 6 | 5 |
| Ascoli | 4 | 4 | 3 | 5 | 2 | 4 | 5 | 5 | 9 | 9 | 13 | 10 | 7 | 7 | 6 | 7 | 9 | 10 | 9 | 8 | 9 | 9 | 9 | 7 | 9 | 7 | 9 | 8 | 8 | 7 | 8 | 7 | 7 | 7 | 7 | 7 | 7 | 6 |
| Benevento | 3 | 11 | 11 | 9 | 4 | 5 | 6 | 6 | 3 | 2 | 4 | 6 | 11 | 5 | 4 | 4 | 4 | 5 | 3 | 4 | 6 | 6 | 7 | 6 | 6 | 4 | 5 | 6 | 6 | 6 | 7 | 6 | 6 | 5 | 4 | 6 | 5 | 7 |
| Perugia | 6 | 12 | 12 | 11 | 9 | 10 | 9 | 7 | 8 | 8 | 8 | 12 | 9 | 10 | 9 | 9 | 8 | 9 | 10 | 10 | 10 | 8 | 8 | 9 | 7 | 9 | 10 | 9 | 9 | 9 | 9 | 9 | 9 | 9 | 9 | 9 | 9 | 8 |
| Frosinone | 10 | 5 | 7 | 6 | 5 | 7 | 8 | 10 | 7 | 7 | 6 | 5 | 4 | 4 | 7 | 8 | 10 | 8 | 7 | 7 | 5 | 7 | 6 | 8 | 8 | 8 | 7 | 7 | 7 | 8 | 6 | 8 | 8 | 8 | 8 | 8 | 8 | 9 |
| Ternana | 19 | 17 | 19 | 17 | 15 | 15 | 15 | 14 | 10 | 14 | 16 | 13 | 13 | 13 | 13 | 11 | 12 | 12 | 13 | 12 | 12 | 13 | 14 | 13 | 13 | 14 | 13 | 13 | 12 | 13 | 13 | 11 | 13 | 11 | 10 | 10 | 10 | 10 |
| Cittadella | 5 | 2 | 6 | 4 | 8 | 12 | 7 | 9 | 12 | 16 | 12 | 9 | 10 | 11 | 10 | 10 | 7 | 7 | 8 | 9 | 8 | 10 | 10 | 10 | 10 | 10 | 8 | 10 | 10 | 10 | 10 | 10 | 11 | 10 | 11 | 11 | 11 | 11 |
| Parma | 11 | 6 | 4 | 8 | 12 | 13 | 12 | 12 | 15 | 13 | 10 | 14 | 14 | 14 | 14 | 15 | 15 | 13 | 12 | 13 | 13 | 11 | 13 | 14 | 14 | 13 | 14 | 14 | 14 | 12 | 14 | 14 | 10 | 12 | 13 | 13 | 14 | 12 |
| Como | 8 | 13 | 14 | 16 | 17 | 16 | 16 | 16 | 16 | 15 | 11 | 7 | 12 | 12 | 12 | 13 | 11 | 11 | 11 | 11 | 11 | 12 | 11 | 11 | 11 | 11 | 12 | 12 | 13 | 14 | 12 | 12 | 12 | 13 | 14 | 14 | 13 | 13 |
| Reggina | 13 | 7 | 8 | 7 | 7 | 8 | 10 | 8 | 6 | 3 | 5 | 4 | 6 | 9 | 11 | 12 | 13 | 14 | 14 | 14 | 15 | 14 | 12 | 12 | 12 | 12 | 11 | 11 | 11 | 11 | 11 | 13 | 14 | 14 | 12 | 12 | 12 | 14 |
| SPAL | 17 | 9 | 10 | 13 | 11 | 14 | 14 | 15 | 14 | 12 | 15 | 15 | 16 | 15 | 15 | 14 | 14 | 15 | 15 | 15 | 14 | 15 | 16 | 15 | 15 | 15 | 15 | 15 | 15 | 15 | 15 | 15 | 15 | 15 | 15 | 15 | 15 | 15 |
| Cosenza | 15 | 19 | 13 | 14 | 13 | 9 | 11 | 11 | 13 | 11 | 14 | 16 | 15 | 16 | 16 | 16 | 17 | 17 | 17 | 17 | 17 | 17 | 17 | 17 | 17 | 17 | 17 | 17 | 17 | 17 | 17 | 17 | 17 | 17 | 17 | 17 | 17 | 16 |
| Vicenza | 18 | 18 | 17 | 19 | 19 | 20 | 19 | 19 | 19 | 19 | 19 | 19 | 19 | 19 | 19 | 19 | 20 | 20 | 20 | 20 | 20 | 19 | 19 | 19 | 19 | 18 | 18 | 18 | 18 | 18 | 18 | 18 | 18 | 18 | 18 | 18 | 18 | 17 |
| Alessandria | 14 | 16 | 18 | 18 | 20 | 18 | 18 | 18 | 18 | 17 | 17 | 18 | 17 | 17 | 17 | 17 | 16 | 16 | 16 | 16 | 16 | 16 | 15 | 16 | 16 | 16 | 16 | 16 | 16 | 16 | 16 | 16 | 16 | 16 | 16 | 16 | 16 | 18 |
| Crotone | 9 | 14 | 15 | 15 | 16 | 17 | 17 | 17 | 17 | 18 | 18 | 17 | 18 | 18 | 18 | 18 | 18 | 18 | 18 | 18 | 18 | 18 | 18 | 18 | 18 | 19 | 19 | 19 | 19 | 19 | 19 | 19 | 19 | 19 | 19 | 19 | 19 | 19 |
| Pordenone | 16 | 20 | 20 | 20 | 18 | 19 | 20 | 20 | 20 | 20 | 20 | 20 | 20 | 20 | 20 | 20 | 19 | 19 | 19 | 19 | 19 | 20 | 20 | 20 | 20 | 20 | 20 | 20 | 20 | 20 | 20 | 20 | 20 | 20 | 20 | 20 | 20 | 20 |
* Leader and promotion to Serie A
* Promotion to Serie A
* Play-off semifinals
* Play-off preliminary round
* Play-out
* Relegation to Serie C

## Results

| Home \ Away | ALE | ASC | BEN | BRE | CIT | COM | COS | CRE | CRO | FRO | LEC | MON | PAR | PER | PIS | POR | REG | SPA | TER | VIC |
| Alessandria | — | 1–3 | 2–0 | 1–3 | 0–1 | 1–1 | 1–0 | 1–0 | 1–0 | 1–1 | 1–1 | 0–3 | 0–2 | 1–2 | 1–1 | 2–0 | 0–0 | 2–2 | 0–2 | 0–1 |
| Ascoli | 3–0 | — | 0–2 | 2–3 | 0–0 | 1–1 | 1–0 | 1–4 | 2–1 | 1–1 | 1–1 | 1–1 | 0–0 | 0–1 | 2–0 | 1–0 | 2–0 | 0–1 | 4–1 | 2–1 |
| Benevento | 4–3 | 0–2 | — | 0–1 | 4–1 | 5–0 | 3–0 | 1–1 | 3–1 | 1–4 | 0–0 | 3–1 | 0–0 | 0–0 | 5–1 | 2–1 | 4–0 | 1–2 | 1–2 | 1–0 |
| Brescia | 1–1 | 2–0 | 2–2 | — | 1–1 | 2–4 | 5–1 | 1–0 | 2–2 | 2–2 | 1–1 | 0–2 | 1–0 | 2–1 | 0–1 | 1–0 | 3–0 | 1–1 | 1–1 | 2–0 |
| Cittadella | 1–2 | 2–0 | 0–1 | 1–0 | — | 2–2 | 1–1 | 0–2 | 4–2 | 3–0 | 1–2 | 1–2 | 1–2 | 0–0 | 2–0 | 1–0 | 0–0 | 0–0 | 1–2 | 1–0 |
| Como | 2–0 | 0–1 | 1–1 | 1–1 | 1–2 | — | 2–1 | 1–2 | 1–1 | 0–2 | 1–1 | 2–0 | 1–1 | 4–1 | 0–1 | 1–0 | 1–1 | 0–2 | 1–1 | 0–2 |
| Cosenza | 2–1 | 1–3 | 1–0 | 0–0 | 1–0 | 2–0 | — | 0–2 | 1–0 | 1–1 | 2–2 | 0–2 | 1–3 | 1–2 | 0–2 | 3–1 | 0–1 | 0–1 | 3–1 | 2–1 |
| Cremonese | 2–1 | 0–1 | 1–1 | 2–1 | 2–0 | 2–0 | 3–1 | — | 3–2 | 1–1 | 3–0 | 3–2 | 3–1 | 0–3 | 1–1 | 2–1 | 1–1 | 1–1 | 2–0 | 0–0 |
| Crotone | 0–0 | 2–2 | 0–2 | 0–1 | 0–0 | 2–2 | 3–3 | 3–1 | — | 2–0 | 0–3 | 1–1 | 0–1 | 1–1 | 2–1 | 4–1 | 1–1 | 1–2 | 1–2 | 0–1 |
| Frosinone | 3–0 | 2–1 | 2–0 | 2–2 | 0–1 | 1–2 | 1–0 | 2–1 | 2–1 | — | 0–0 | 4–1 | 2–2 | 0–0 | 1–2 | 2–2 | 3–0 | 4–0 | 1–1 | 2–0 |
| Lecce | 3–2 | 3–1 | 1–1 | 1–1 | 1–2 | 1–1 | 3–1 | 2–1 | 3–0 | 1–0 | — | 3–0 | 4–0 | 0–0 | 2–0 | 1–0 | 2–0 | 1–0 | 3–3 | 2–1 |
| Monza | 1–0 | 2–0 | 3–0 | 1–1 | 1–0 | 3–2 | 4–1 | 1–0 | 1–0 | 3–2 | 0–1 | — | 1–1 | 2–2 | 1–2 | 3–1 | 1–0 | 4–0 | 1–1 | 4–0 |
| Parma | 2–2 | 0–1 | 1–0 | 0–1 | 1–1 | 4–3 | 1–1 | 1–2 | 1–1 | 0–1 | 0–0 | 0–0 | — | 1–1 | 1–1 | 4–1 | 1–1 | 4–0 | 2–3 | 1–0 |
| Perugia | 1–1 | 2–3 | 0–1 | 1–0 | 1–1 | 0–1 | 1–1 | 0–0 | 2–0 | 3–0 | 1–1 | 1–0 | 2–1 | — | 1–1 | 0–1 | 0–2 | 1–1 | 1–1 | 1–0 |
| Pisa | 2–0 | 1–1 | 1–0 | 0–0 | 1–0 | 3–1 | 1–1 | 3–0 | 3–2 | 1–3 | 1–0 | 2–1 | 0–0 | 1–1 | — | 1–1 | 2–0 | 1–0 | 0–0 | 2–2 |
| Pordenone | 2–0 | 0–1 | 1–4 | 1–1 | 0–1 | 1–1 | 1–1 | 2–2 | 3–3 | 2–0 | 0–1 | 1–4 | 0–4 | 0–1 | 0–1 | — | 1–1 | 1–1 | 1–3 | 2–4 |
| Reggina | 0–4 | 1–2 | 0–3 | 0–2 | 0–1 | 1–4 | 1–0 | 1–2 | 1–0 | 0–0 | 1–0 | 0–0 | 2–1 | 0–1 | 1–0 | 2–0 | — | 2–1 | 3–2 | 3–1 |
| SPAL | 2–3 | 1–2 | 1–1 | 0–2 | 0–0 | 1–1 | 2–2 | 0–2 | 1–1 | 3–0 | 1–3 | 1–1 | 2–2 | 1–2 | 0–0 | 5–0 | 1–3 | — | 5–1 | 3–2 |
| Ternana | 3–0 | 2–4 | 0–2 | 0–2 | 1–1 | 1–2 | 2–0 | 1–2 | 1–0 | 4–4 | 1–4 | 0–1 | 3–1 | 1–0 | 1–4 | 1–0 | 2–0 | 1–0 | — | 5–0 |
| Vicenza | 2–1 | 2–0 | 2–3 | 2–3 | 3–3 | 0–1 | 0–0 | 0–1 | 1–1 | 0–2 | 2–1 | 1–1 | 0–1 | 1–2 | 1–3 | 1–0 | 0–1 | 1–1 | 3–1 | — |

## Promotion play-offs

Rules:
* Preliminary round: the higher-placed team played at home. If teams were tied after regular time, extra time was played. If scores were still level, the higher-placed team advanced;
* Semi-finals: the higher-placed team played at home for second leg. If teams were tied on aggregate, the higher-placed team advanced;
* Final: the higher-placed team played at home for second leg. If teams were tied on aggregate, the higher-placed team was promoted to Serie A, unless the teams finished tied on points after regular season, in which case winner was decided by extra time and a penalty shoot-out if necessary.
| Preliminary round | Preliminary round | Preliminary round | Semi-finals | Semi-finals | Semi-finals | Semi-finals | Semi-finals | Final | Final | Final | Final | Final |
| | | | 5 | Brescia | 1 | 1 | 2 | | | | | |
| 5 | Brescia (a.e.t.) | 3 | 4 | Monza | 2 | 2 | 4 | | | | | |
| 8 | Perugia | 2 | | | | | | 4 | Monza (a.e.t.) | 2 | 4 | 6 |
| | | | | | | | | 3 | Pisa | 1 | 3 | 4 |
| | | | 7 | Benevento | 1 | 0 | 1 | | | | | |
| 6 | Ascoli | 0 | 3 | Pisa | 0 | 1 | 1 | | | | | |
| 7 | Benevento | 1 | | | | | | | | | | |

### Final
#### First leg
#### Second leg
## Relegation play-out

The higher-placed team played at home for the second leg. If the teams were tied on aggregate, the lower-placed team was relegated to Serie C, unless the teams finished tied on points after the regular season, in which case the winner was decided by extra time and a penalty shoot-out if necessary.
| Team 1 | Agg.Tooltip Aggregate score | Team 2 | 1st leg | 2nd leg |
| Vicenza | 1–2 | Cosenza | 1–0 | 0–2 |

### Second leg
## Season statistics
### Top goalscorers

| Rank | Player | Club | Goals |
| 1 | Massimo Coda | Lecce | 20 |
| 2 | Alfredo Donnarumma | Ternana | 14 |
| 2 | Christian Gytkjær$^5$ | Monza | 14 |
| 2 | Gabriel Strefezza | Lecce | 14 |
| 2 | Franco Vázquez | Parma | 14 |
| 6 | Gianluca Lapadula$^2$ | Benevento | 13 |
| 7 | Simone Corazza | Alessandria | 12 |
| 7 | Dany Mota$^1$ | Monza | 12 |
| 9 | Mirko Marić | Crotone | 11 |
| 10 | Enrico Baldini | Cittadella | 10 |
| 10 | Alberto Cerri | Como | 10 |
| 10 | Gabriel Charpentier | Frosinone | 10 |
| 10 | Manuel De Luca | Perugia | 10 |
| 10 | Stefano Moreo$^1$ | Brescia | 10 |
| 10 | Mattia Valoti | Monza | 10 |

#### Note

$^1$ Player scored 1 goal in the play-offs. $^2$ Player scored 2 goals in the play-offs. $^5$ Player scored 5 goals in the play-offs.

### Hat-tricks

| Player | Club | Against | Result | Date |
| Simone Corazza | Alessandria | Benevento | 3–4 (A) | 22 August 2021 |
| Gianluca Lapadula | Benevento | Cittadella | 4–1 (H) | 21 September 2021 |
| Massimo Coda | Lecce | Parma | 4–0 (H) | 7 November 2021 |
| Mirko Marić | Crotone | Cosenza | 3–3 (H) | 23 February 2022 |
| Ettore Gliozzi | Como | Parma | 3–4 (A) | 6 April 2022 |
| Frank Tsadjout | Ascoli | Ternana | 4–1 (H) | 6 May 2022 |

#### Note

(H) – Home (A) – Away

### Clean sheets

| Rank | Player | Club | Clean sheets | Game weeks |
| 1 | Michele Di Gregorio | Monza | 15 | 1–2, 8–9, 11, 16, 20, 22–23, 29–31, 33–34, 37 |
| 1 | Jesse Joronen | Brescia | 15 | 1, 4, 9, 11–12, 15, 17, 19, 21, 23, 25, 32–34, 38 |
| 1 | Nícolas$^1$ | Pisa | 15 | 1–2, 7, 13–14, 16, 18, 20, 22, 25, 28–29, 31, 33 |
| 4 | Leandro Chichizola | Perugia | 14 | 1, 3, 5, 7–9, 13, 16, 21–22, 24, 29, 33, 38 |
| 4 | Gabriel | Lecce | 14 | 3, 5, 7, 9, 12–13, 16, 19, 24, 26, 28, 34, 36, 38 |
| 4 | Alberto Paleari$^2$ | Benevento | 14 | 3–4, 7, 9, 14, 17, 21, 24–26, 33–34 |
| 7 | Elhan Kastrati | Cittadella | 12 | 1, 4, 7–8, 11–12, 16–17, 23, 26–27, 33 |
| 8 | Nicola Leali | Ascoli | 11 | 1, 3, 13, 16, 23–24, 30, 34–37 |
| 9 | Antony Iannarilli | Ternana | 10 | 6, 9, 12, 15, 21–22, 27, 29, 31, 377 |
| 10 | Marco Carnesecchi | Cremonese | 9 | 1, 3, 6, 16, 19, 22, 24–25, 31 |
| 10 | Federico Ravaglia | Frosinone | 9 | 2–4, 6, 13, 18, 20–21, 25 |

#### Note

$^1$ Player kept 1 clean sheet in the play-offs. $^2$ Player kept 2 clean sheets in the play-offs.