# 2019–20 Serie B

The 2019–20 Serie B (known as Serie BKT for sponsorship reasons) was the 88th season since its establishment in 1929. The 20-team format returned after 16 years, the last time being in the 2002–03 season. The season was scheduled to run from 23 August 2019 to 14 May 2020, though on 9 March 2020, the Italian government halted the league until 3 April 2020 due to the COVID-19 pandemic in Italy. Serie B did not resume play on this date. On 18 May, it was announced that Italian football would be suspended until 14 June. On 28 May, it was announced that Serie B would resume starting from 20 June.

## Teams

After one season with 19 clubs, Serie B was played in a 20-team format for the first time since the 2002–03 season.
* Relegated from 2018–19 Serie A
* Empoli
* Frosinone
* Chievo Verona
* Promoted from 2018–19 Serie C
* Virtus Entella (Group A champions)
* Pordenone (Group B champions)
* Juve Stabia (Group C champions)
* Pisa (playoff winners)
* Trapani (playoff winners)
Among the five promoted teams, Pordenone is the only one to have never played Serie B before. Among the relegated teams, two of them (Empoli and Frosinone) have returned to Serie B after only one season in the top flight.
On 4 July 2019, the Co.Vi.Soc. recommended the exclusion of Palermo from the league due to financial irregularities. The club's exclusion was confirmed and ratified on 12 July, with Venezia being readmitted in place of the Rosanero.

### Stadiums and locations

| Team | Home city | Stadium | Capacity | 2018–19 season |
| Ascoli | Ascoli Piceno | Stadio Cino e Lillo Del Duca | 12,461 | 13th in Serie B |
| Benevento | Benevento | Stadio Ciro Vigorito | 16,867 | 3rd in Serie B |
| Chievo | Verona | Stadio Marc'Antonio Bentegodi | 31,045 | 20th in Serie A |
| Cittadella | Cittadella (Padua) | Stadio Pier Cesare Tombolato | 7,623 | 7th in Serie B |
| Cosenza | Cosenza | Stadio San Vito-Gigi Marulla | 20,987 | 10th in Serie B |
| Cremonese | Cremona | Stadio Giovanni Zini | 20,641 | 9th in Serie B |
| Crotone | Crotone | Stadio Ezio Scida | 16,640 | 12th in Serie B |
| Empoli | Empoli (Florence) | Stadio Carlo Castellani | 16,284 | 18th in Serie A |
| Frosinone | Frosinone | Stadio Benito Stirpe | 16,227 | 19th in Serie A |
| Juve Stabia | Castellammare di Stabia (Naples) | Romeo Menti | 7,642 | Serie C/C Champions |
| Livorno | Livorno | Stadio Armando Picchi | 14,267 | 14th in Serie B |
| Perugia | Perugia | Stadio Renato Curi | 23,625 | 8th in Serie B |
| Pescara | Pescara | Stadio Adriatico – Giovanni Cornacchia | 20,515 | 4th in Serie B |
| Pisa | Pisa | Arena Garibaldi – Romeo Anconetani | 10,000 | 3rd in Serie C/A, play-off winner |
| Pordenone | Pordenone | Dacia Arena (Udine) Stadio Nereo Rocco (Trieste) | 25,312 24,500 | Serie C/B Champions |
| Salernitana | Salerno | Stadio Arechi | 37,180 | 16th in Serie B |
| Spezia | La Spezia | Stadio Alberto Picco | 10,336 | 6th in Serie B |
| Trapani | Trapani | Polisportivo Provinciale (Erice) | 7,787 | 2nd in Serie C/C, play-off winner |
| Venezia | Venice | Stadio Pier Luigi Penzo | 7,371 | 15th in Serie B |
| Virtus Entella | Chiavari (Genoa) | Comunale Aldo Gastaldi | 5,535 | Serie C/A Champions |

### Personnel and kits

| Team | President | Manager | Captain | Kit manufacturer | Shirt sponsor (front) | Shirt sponsor (back) | Shirt sponsor (sleeve)* | Shorts sponsor |
| Ascoli | Giuliano Tosti | Davide Dionigi | Riccardo Brosco | Nike | Fainplast, Moretti Design/Bricofer | Green Network Energy/Bricofer | Facile Ristrutturare | AIR fire/Sky Network |
| Benevento | Oreste Vigorito | Filippo Inzaghi | Christian Maggio | Kappa | IVPC, Rillo Costruzioni | None | Facile Ristrutturare | None |
| Chievo | Luca Campedelli | Alfredo Aglietti | Boštjan Cesar | Givova | Paluani/Nico Abbigliamento e Calzature/Nobis/Brec Viaggi/Vicentini Carni/Lollo's Group/Tecnoest/Opel Autozai Verona/Noleggiare/Mitsubishi Motors, Coati Salumi | Nobis/Autoteam 9 | Facile Ristrutturare | Avelia |
| Cittadella | Andrea Gabrielli | Roberto Venturato | Manuel Iori | Mizuno | Sirmax, Gruppo Gabrielli | Gavinox | Facile Ristrutturare | Metalservice |
| Cosenza | Eugenio Guarascio | Roberto Occhiuzzi (caretaker) | Angelo Corsi | Legea | Quattropuntozero, Gruppo Chiappetta/Renault Gruppo Chiappetta | None | Facile Ristrutturare | None |
| Cremonese | Paolo Rossi | Pierpaolo Bisoli | Claiton | Acerbis | ilta Inox (H)/Arinox (A), Arvedi | Fattorie Cremona | Facile Ristrutturare | Arvedi Tubi Acciaio |
| Crotone | Gianni Vrenna | Giovanni Stroppa | Alex Cordaz | Zeus | San Vincenzo Salumif, Envì Group | Ford Vumbaca Group | Facile Ristrutturare | None |
| Empoli | Fabrizio Corsi | Pasquale Marino | Domenico Maietta | Kappa | Computer Gross, Sammontana (H)/Logli Massimo (A) | Giletti | Facile Ristrutturare | Piccini Chianti |
| Frosinone | Maurizio Stirpe | Alessandro Nesta | Mirko Gori | Zeus | Banca Popolare del Frusinate, Acea | None | Facile Ristrutturare | None |
| Juve Stabia | Francesco Manniello | Fabio Caserta | Alessandro Mastalli | Givova | Spada Roma, AutoShopping | Optima Italia | Facile Ristrutturare | None |
| Livorno | Aldo Spinelli | Antonio Filippini | Andrea Luci | Legea | Gruppo Spinelli | Pediatrica | Facile Ristrutturare | None |
| Perugia | Massimiliano Santopadre | Serse Cosmi | Aleandro Rosi | Frankie Garage | Officine Piccini, Vitakraft | Fortinfissi | Facile Ristrutturare | Mericat |
| Pescara | Daniele Sebastiani | Andrea Sottil | Vincenzo Fiorillo | Erreà | Lublan, SarniOro | Liofilchem | Facile Ristrutturare | MBI Gas & Luce |
| Pisa | Giuseppe Corrado | Luca D'Angelo | Davide Moscardelli | Adidas | Gruppo Paim/Andrea Bocelli Foundation/Formaggi della Famiglia Busi/Filcasa/COSPE Costruzioni/Antonini Assicurazioni/Beapp/Banca di Pisa e Fornacette/Cetilar | Vitali/Dal Mozza Gourmet | Facile Ristrutturare | Hi-Turf Solution |
| Pordenone | Mauro Lovisa | Attilio Tesser | Mirko Stefani | Joma | Omega Group, Assiteca | Alea Office Furniture | Facile Ristrutturare | CRO Area Giovani |
| Salernitana | Marco Mezzaroma & Claudio Lotito | Gian Piero Ventura | Francesco Di Tacchio | Zeus | Associazione Bambino Gesù del Cairo/Città di Salerno | None | Facile Ristrutturare | IASA |
| Spezia | Andrea Corradino | Vincenzo Italiano | Claudio Terzi | Acerbis | TEN Food & Beverage | Spigas | Facile Ristrutturare | Pediatrica |
| Trapani | Giorgio Heller | Fabrizio Castori | Luca Pagliarulo | Joma/Nike | SuperConveniente/Terravision, Liberty Lines | Nuova Sicilauto | Facile Ristrutturare | Gruppo Arena |
| Venezia | Joe Tacopina | Alessio Dionisi | Marco Modolo | Nike | Fluorsid, Lino Sonego/Campello Motors | IBSA Group | Facile Ristrutturare | Lino Sonego |
| Virtus Entella | Antonio Gozzi | Roberto Boscaglia | Luca Nizzetto | Adidas | Duferco Energia | None | Facile Ristrutturare | Kia Gecar |
* For this season, all the teams participating in the Serie B tournament featured the institutional sponsor Facile Ristrutturare (on the left sleeve as a patch).

### Managerial changes

| Team | Outgoing manager | Manner of departure | Date of vacancy | Position in table | Replaced by | Date of appointment |
| Perugia | Alessandro Nesta | Signed for Frosinone | 21 May 2019 | Pre-season | Massimo Oddo | 7 June 2019 |
| Pescara | Giuseppe Pillon | Resigned | 26 May 2019 | Pre-season | Luciano Zauri | 5 June 2019 |
| Spezia | Pasquale Marino | Mutual consent | 30 May 2019 | Pre-season | Vincenzo Italiano | 19 June 2019 |
| Chievo | Domenico Di Carlo | Signed for Vicenza | 1 June 2019 | Pre-season | Michele Marcolini | 4 July 2019 |
| Frosinone | Marco Baroni | Mutual consent | 2 June 2019 | Pre-season | Alessandro Nesta | 17 June 2019 |
| Ascoli | Vincenzo Vivarini | Sacked | 5 June 2019 | Pre-season | Paolo Zanetti | 7 June 2019 |
| Empoli | Aurelio Andreazzoli | Signed for Genoa | 13 June 2019 | Pre-season | Cristian Bucchi | 18 June 2019 |
| Benevento | Cristian Bucchi | Signed for Empoli | 18 June 2019 | Pre-season | Filippo Inzaghi | 22 June 2019 |
| Trapani | Vincenzo Italiano | Signed for Spezia | 19 June 2019 | Pre-season | Francesco Baldini | 11 July 2019 |
| Salernitana | Leonardo Menichini | Sacked | 30 June 2019 | Pre-season | Gian Piero Ventura | 30 June 2019 |
| Venezia | Serse Cosmi | End of contract | 30 June 2019 | Pre-season | Alessio Dionisi | 3 July 2019 |
| Cremonese | Massimo Rastelli | Sacked | 8 October 2019 | 12th | Marco Baroni | 8 October 2019 |
| Empoli | Cristian Bucchi | Sacked | 12 November 2019 | 10th | Roberto Muzzi | 14 November 2019 |
| Livorno | Roberto Breda | Sacked | 9 December 2019 | 20th | Paolo Tramezzani | 10 December 2019 |
| Trapani | Francesco Baldini | Sacked | 17 December 2019 | 19th | Fabrizio Castori | 19 December 2019 |
| Perugia | Massimo Oddo | Sacked | 4 January 2020 | 13th | Serse Cosmi | 4 January 2020 |
| Cremonese | Marco Baroni | Sacked | 8 January 2020 | 17th | Massimo Rastelli | 8 January 2020 |
| Pescara | Luciano Zauri | Resigned | 20 January 2020 | 10th | Nicola Legrottaglie | 21 January 2020 |
| Empoli | Roberto Muzzi | Sacked | 26 January 2020 | 16th | Pasquale Marino | 26 January 2020 |
| Ascoli | Paolo Zanetti | Sacked | 27 January 2020 | 12th | Guillermo Abascal (caretaker) | 27 January 2020 |
| Ascoli | Guillermo Abascal | End of caretaker spell | 1 February 2020 | 13th | Roberto Stellone | 1 February 2020 |
| Livorno | Paolo Tramezzani | Sacked | 3 February 2020 | 20th | Roberto Breda | 3 February 2020 |
| Cosenza | Piero Braglia | Sacked | 10 February 2020 | 18th | Giuseppe Pillon | 11 February 2020 |
| Chievo | Michele Marcolini | Sacked | 1 March 2020 | 7th | Alfredo Aglietti | 11 February 2020 |
| Cremonese | Massimo Rastelli | Sacked | 4 March 2020 | 17th | Pierpaolo Bisoli | 5 March 2020 |
| Livorno | Roberto Breda | Sacked | 8 March 2020 | 20th | Antonio Filippini | 8 March 2020 |
| Cosenza | Giuseppe Pillon | Mutual consent | 18 March 2020 | 18th | Roberto Occhiuzzi (caretaker) | 18 March 2020 |
| Ascoli | Roberto Stellone | Sacked | 16 April 2020 | 15th | Guillermo Abascal | 16 April 2020 |
| Ascoli | Guillermo Abascal | Sacked | 22 June 2020 | 17th | Davide Dionigi | 24 June 2020 |
| Pescara | Nicola Legrottaglie | Sacked | 5 July 2020 | 14th | Andrea Sottil | 7 July 2020 |

## League table

| Pos | Teamvte | Pld | W | D | L | GF | GA | GD | Pts | Promotion, qualification or relegation |
| 1 | Benevento (C, P) | 38 | 26 | 8 | 4 | 67 | 27 | +40 | 86 | Promotion to Serie A |
| 2 | Crotone (P) | 38 | 20 | 8 | 10 | 63 | 40 | +23 | 68 | Promotion to Serie A |
| 3 | Spezia (O, P) | 38 | 17 | 10 | 11 | 54 | 40 | +14 | 61 | Qualification for promotion play-offs semi-finals |
| 4 | Pordenone | 38 | 16 | 10 | 12 | 48 | 46 | +2 | 58 | Qualification for promotion play-offs semi-finals |
| 5 | Cittadella | 38 | 17 | 7 | 14 | 49 | 49 | 0 | 58 | Qualification for promotion play-offs preliminary round |
| 6 | Chievo | 38 | 14 | 14 | 10 | 48 | 38 | +10 | 56 | Qualification for promotion play-offs preliminary round |
| 7 | Empoli | 38 | 14 | 12 | 12 | 47 | 48 | −1 | 54 | Qualification for promotion play-offs preliminary round |
| 8 | Frosinone | 38 | 14 | 12 | 12 | 41 | 38 | +3 | 54 | Qualification for promotion play-offs preliminary round |
| 9 | Pisa | 38 | 14 | 12 | 12 | 49 | 45 | +4 | 54 | |
| 10 | Salernitana | 38 | 14 | 10 | 14 | 53 | 50 | +3 | 52 | |
| 11 | Venezia | 38 | 12 | 14 | 12 | 37 | 40 | −3 | 50 | |
| 12 | Cremonese | 38 | 12 | 13 | 13 | 42 | 43 | −1 | 49 | |
| 13 | Virtus Entella | 38 | 12 | 12 | 14 | 46 | 50 | −4 | 48 | |
| 14 | Ascoli | 38 | 13 | 7 | 18 | 50 | 58 | −8 | 46 | |
| 15 | Cosenza | 38 | 12 | 10 | 16 | 50 | 49 | +1 | 46 | |
| 16 | Perugia (R) | 38 | 12 | 9 | 17 | 38 | 49 | −11 | 45 | Qualification for relegation play-out |
| 17 | Pescara (O) | 38 | 12 | 9 | 17 | 48 | 55 | −7 | 45 | Qualification for relegation play-out |
| 18 | Trapani (R) | 38 | 11 | 13 | 14 | 48 | 60 | −12 | 44 | Relegation to Serie C |
| 19 | Juve Stabia (R) | 38 | 11 | 8 | 19 | 47 | 63 | −16 | 41 | Relegation to Serie C |
| 20 | Livorno (R) | 38 | 5 | 6 | 27 | 30 | 67 | −37 | 21 | Relegation to Serie C |
* 1 2 Pordenone finished ahead of Cittadella on head-to-head points: Pordenone 0–0 Cittadella, Cittadella 0–2 Pordenone.
* 1 2 3 Head-to-head points: Empoli 9, Frosinone 5, Pisa 2.
* 1 2 Ascoli finished ahead of Cosenza on head-to-head points: Ascoli 3–2 Cosenza, Cosenza 0–1 Ascoli.
* 1 2 Perugia finished ahead of Pescara on head-to-head points: Perugia 3–1 Pescara, Pescara 2–2 Perugia.
* ↑ Deducted 2 points for administrative irregularities.

### 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 |
| Ascoli | 3 | 10 | 5 | 3 | 1 | 3 | 6 | 7 | 4 | 5 | 7 | 9 | 7 | 6 | 9 | 6 | 9 | 5 | 7 | 9 | 13 | 12 | 12 | 14 | 14 | 16 | 15 | 16 | 17 | 17 | 17 | 16 | 16 | 13 | 12 | 13 | 14 | 14 |
| Benevento | 1 | 4 | 2 | 1 | 2 | 4 | 1 | 1 | 2 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
| Chievo | 13 | 15 | 11 | 11 | 13 | 13 | 10 | 6 | 7 | 3 | 4 | 7 | 4 | 7 | 4 | 7 | 7 | 11 | 11 | 6 | 7 | 11 | 11 | 9 | 7 | 8 | 9 | 8 | 8 | 8 | 7 | 8 | 8 | 9 | 10 | 10 | 7 | 6 |
| Cittadella | 19 | 20 | 16 | 17 | 14 | 10 | 7 | 10 | 9 | 7 | 9 | 3 | 5 | 4 | 3 | 5 | 5 | 3 | 5 | 5 | 9 | 6 | 8 | 6 | 6 | 5 | 5 | 6 | 6 | 4 | 3 | 4 | 5 | 5 | 6 | 6 | 5 | 5 |
| Cosenza | 10 | 16 | 17 | 18 | 18 | 19 | 16 | 16 | 17 | 18 | 17 | 16 | 18 | 18 | 17 | 18 | 18 | 17 | 18 | 18 | 18 | 18 | 18 | 18 | 18 | 18 | 18 | 19 | 18 | 18 | 18 | 19 | 19 | 19 | 18 | 18 | 17 | 15 |
| Cremonese | 5 | 12 | 14 | 10 | 12 | 8 | 12 | 12 | 13 | 15 | 16 | 15 | 15 | 15 | 16 | 15 | 15 | 15 | 17 | 17 | 17 | 17 | 17 | 17 | 17 | 17 | 17 | 15 | 15 | 16 | 16 | 15 | 13 | 12 | 13 | 14 | 12 | 12 |
| Crotone | 11 | 7 | 10 | 12 | 8 | 5 | 2 | 2 | 1 | 2 | 3 | 2 | 3 | 2 | 7 | 10 | 6 | 4 | 3 | 3 | 3 | 3 | 2 | 4 | 4 | 3 | 3 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 |
| Empoli | 6 | 6 | 9 | 7 | 4 | 1 | 3 | 3 | 3 | 4 | 8 | 10 | 9 | 13 | 11 | 13 | 13 | 13 | 15 | 16 | 16 | 16 | 14 | 10 | 9 | 9 | 8 | 9 | 9 | 10 | 10 | 10 | 7 | 8 | 9 | 7 | 10 | 7 |
| Frosinone | 20 | 14 | 15 | 15 | 17 | 15 | 15 | 15 | 16 | 13 | 12 | 11 | 13 | 10 | 5 | 3 | 3 | 7 | 6 | 8 | 5 | 4 | 4 | 3 | 2 | 2 | 2 | 3 | 3 | 5 | 6 | 5 | 6 | 6 | 5 | 5 | 8 | 8 |
| Juve Stabia | 14 | 18 | 18 | 19 | 20 | 20 | 20 | 18 | 19 | 17 | 19 | 18 | 17 | 17 | 18 | 17 | 16 | 16 | 14 | 11 | 12 | 14 | 15 | 13 | 13 | 14 | 14 | 13 | 14 | 15 | 15 | 17 | 17 | 17 | 17 | 17 | 18 | 19 |
| Livorno | 16 | 17 | 19 | 16 | 16 | 17 | 17 | 20 | 18 | 19 | 18 | 19 | 19 | 20 | 20 | 20 | 20 | 20 | 20 | 20 | 20 | 20 | 20 | 20 | 20 | 20 | 20 | 20 | 20 | 20 | 20 | 20 | 20 | 20 | 20 | 20 | 20 | 20 |
| Perugia | 7 | 2 | 4 | 6 | 3 | 6 | 5 | 5 | 6 | 6 | 2 | 6 | 8 | 5 | 6 | 9 | 4 | 6 | 8 | 10 | 8 | 7 | 9 | 11 | 11 | 13 | 13 | 12 | 10 | 12 | 12 | 12 | 12 | 16 | 15 | 15 | 15 | 16 |
| Pescara | 17 | 11 | 7 | 8 | 10 | 14 | 11 | 14 | 8 | 12 | 10 | 4 | 6 | 8 | 10 | 12 | 12 | 10 | 9 | 12 | 10 | 8 | 10 | 12 | 12 | 10 | 11 | 14 | 12 | 13 | 14 | 13 | 14 | 14 | 16 | 16 | 16 | 17 |
| Pisa | 12 | 5 | 3 | 5 | 7 | 9 | 13 | 13 | 14 | 11 | 13 | 12 | 11 | 9 | 12 | 8 | 10 | 12 | 13 | 14 | 14 | 13 | 13 | 15 | 16 | 12 | 12 | 11 | 13 | 11 | 9 | 9 | 10 | 10 | 8 | 9 | 6 | 9 |
| Pordenone | 9 | 9 | 6 | 9 | 9 | 11 | 8 | 11 | 10 | 8 | 5 | 5 | 2 | 3 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 6 | 7 | 8 | 7 | 7 | 4 | 5 | 6 | 5 | 3 | 3 | 4 | 4 | 4 | 4 | 4 |
| Salernitana | 4 | 1 | 8 | 4 | 5 | 2 | 4 | 4 | 5 | 9 | 6 | 8 | 10 | 11 | 14 | 11 | 11 | 8 | 10 | 7 | 4 | 5 | 5 | 5 | 5 | 6 | 6 | 7 | 7 | 7 | 8 | 7 | 9 | 7 | 7 | 8 | 9 | 10 |
| Spezia | 2 | 8 | 12 | 13 | 15 | 16 | 18 | 17 | 15 | 16 | 15 | 17 | 16 | 16 | 13 | 14 | 14 | 14 | 12 | 13 | 11 | 9 | 3 | 2 | 3 | 4 | 4 | 5 | 4 | 3 | 4 | 6 | 4 | 3 | 3 | 3 | 3 | 3 |
| Trapani | 18 | 19 | 20 | 20 | 19 | 18 | 19 | 19 | 20 | 20 | 20 | 20 | 20 | 19 | 19 | 19 | 19 | 19 | 19 | 19 | 19 | 19 | 19 | 19 | 19 | 19 | 19 | 18 | 19 | 19 | 19 | 18 | 18 | 18 | 19 | 19 | 19 | 18 |
| Venezia | 15 | 13 | 13 | 14 | 11 | 12 | 14 | 8 | 11 | 14 | 14 | 13 | 12 | 14 | 15 | 16 | 17 | 18 | 16 | 15 | 15 | 15 | 16 | 16 | 15 | 15 | 16 | 17 | 16 | 14 | 13 | 14 | 15 | 15 | 14 | 11 | 13 | 11 |
| Virtus Entella | 8 | 3 | 1 | 2 | 6 | 7 | 9 | 9 | 12 | 10 | 11 | 14 | 14 | 12 | 8 | 4 | 8 | 9 | 4 | 4 | 6 | 10 | 7 | 8 | 10 | 11 | 10 | 10 | 11 | 9 | 11 | 11 | 11 | 11 | 11 | 12 | 11 | 13 |
* Champions, promotion to Serie A
* Promotion to Serie A
* Play-off semifinals
* Play-off preliminary round
* Play-out
* Relegation to Serie C

## Results

| Home \ Away | ASC | BEN | CHI | CIT | COS | CRE | CRO | EMP | FRO | JUV | LIV | PER | PES | PIS | POR | SAL | SPE | TRA | VEN | ENT |
| Ascoli | — | 2–4 | 1–1 | 1–0 | 3–2 | 1–3 | 1–1 | 1–0 | 0–1 | 2–2 | 2–0 | 0–1 | 0–2 | 1–0 | 2–2 | 3–2 | 3–0 | 3–1 | 1–1 | 2–1 |
| Benevento | 4–0 | — | 0–1 | 4–1 | 1–0 | 2–0 | 2–0 | 2–0 | 1–0 | 1–0 | 3–1 | 1–0 | 4–0 | 1–1 | 2–1 | 1–1 | 3–1 | 5–0 | 1–1 | 1–1 |
| Chievo | 2–0 | 1–2 | — | 4–1 | 2–0 | 1–0 | 2–1 | 1–1 | 2–0 | 2–3 | 0–1 | 2–0 | 1–0 | 2–2 | 1–1 | 2–0 | 1–3 | 1–1 | 0–1 | 2–1 |
| Cittadella | 1–2 | 1–2 | 1–1 | — | 1–3 | 0–0 | 1–3 | 1–2 | 0–0 | 3–0 | 1–0 | 2–0 | 2–1 | 1–1 | 0–2 | 4–3 | 0–3 | 2–0 | 1–0 | 1–3 |
| Cosenza | 0–1 | 0–1 | 1–1 | 1–2 | — | 2–0 | 0–1 | 1–0 | 0–2 | 3–1 | 1–1 | 2–1 | 1–2 | 2–1 | 1–2 | 0–1 | 1–1 | 2–2 | 1–1 | 2–1 |
| Cremonese | 1–0 | 0–1 | 1–0 | 0–2 | 0–2 | — | 2–1 | 2–3 | 1–1 | 1–1 | 0–0 | 2–1 | 1–0 | 3–4 | 2–2 | 1–0 | 0–0 | 5–0 | 0–0 | 0–1 |
| Crotone | 3–1 | 3–0 | 1–1 | 1–1 | 0–0 | 1–0 | — | 0–0 | 1–0 | 2–0 | 2–1 | 2–3 | 4–1 | 1–0 | 1–0 | 1–1 | 1–2 | 3–0 | 3–2 | 3–1 |
| Empoli | 2–1 | 0–0 | 1–1 | 1–0 | 1–5 | 1–1 | 3–1 | — | 2–0 | 2–1 | 1–1 | 3–0 | 1–2 | 2–1 | 0–1 | 1–1 | 1–1 | 1–1 | 1–1 | 2–4 |
| Frosinone | 2–1 | 2–3 | 2–0 | 0–2 | 1–1 | 0–2 | 1–2 | 4–0 | — | 2–2 | 1–0 | 1–0 | 2–0 | 1–1 | 2–2 | 1–0 | 2–1 | 3–0 | 1–1 | 1–0 |
| Juve Stabia | 1–5 | 1–1 | 3–2 | 0–1 | 1–0 | 1–2 | 3–2 | 1–0 | 0–2 | — | 2–3 | 1–2 | 2–1 | 0–2 | 4–2 | 2–0 | 3–1 | 2–2 | 2–0 | 1–1 |
| Livorno | 0–3 | 0–2 | 3–4 | 0–2 | 0–3 | 1–2 | 1–5 | 0–2 | 2–2 | 2–1 | — | 0–1 | 0–2 | 1–0 | 2–1 | 2–3 | 0–1 | 1–2 | 0–2 | 4–4 |
| Perugia | 1–1 | 1–2 | 2–1 | 0–2 | 2–2 | 0–0 | 0–0 | 0–1 | 3–1 | 0–0 | 1–0 | — | 3–1 | 1–0 | 1–2 | 1–0 | 0–3 | 1–2 | 0–1 | 2–0 |
| Pescara | 2–1 | 4–0 | 0–0 | 1–2 | 2–1 | 1–1 | 0–3 | 1–1 | 1–1 | 3–1 | 1–0 | 2–2 | — | 3–0 | 4–2 | 1–2 | 1–2 | 1–1 | 2–2 | 1–1 |
| Pisa | 1–0 | 0–0 | 1–1 | 2–0 | 1–3 | 4–1 | 1–1 | 2–3 | 0–0 | 1–1 | 1–0 | 1–0 | 2–1 | — | 2–0 | 2–1 | 3–2 | 3–2 | 1–2 | 0–2 |
| Pordenone | 2–1 | 1–1 | 0–1 | 0–0 | 1–2 | 1–0 | 1–0 | 2–0 | 3–0 | 2–1 | 2–2 | 3–0 | 0–2 | 1–0 | — | 1–1 | 1–0 | 2–1 | 0–0 | 2–0 |
| Salernitana | 1–1 | 0–2 | 1–1 | 4–1 | 2–1 | 3–3 | 3–2 | 2–4 | 1–1 | 2–1 | 1–0 | 1–1 | 3–1 | 1–1 | 4–0 | — | 1–2 | 1–0 | 2–0 | 2–1 |
| Spezia | 3–1 | 0–1 | 0–0 | 1–1 | 5–1 | 3–2 | 1–2 | 1–0 | 2–0 | 2–0 | 2–0 | 2–2 | 2–0 | 1–2 | 1–0 | 2–1 | — | 2–4 | 0–1 | 0–0 |
| Trapani | 3–1 | 2–0 | 1–0 | 0–3 | 2–2 | 0–0 | 2–0 | 2–2 | 0–0 | 1–2 | 2–1 | 2–2 | 1–0 | 1–3 | 3–0 | 0–1 | 1–1 | — | 0–1 | 4–1 |
| Venezia | 2–1 | 0–2 | 0–2 | 1–2 | 1–1 | 1–2 | 1–3 | 0–2 | 0–1 | 1–0 | 1–0 | 3–1 | 1–1 | 1–1 | 1–2 | 1–0 | 0–0 | 1–1 | — | 2–2 |
| Virtus Entella | 3–0 | 0–4 | 1–1 | 2–3 | 1–0 | 1–1 | 1–2 | 2–0 | 1–0 | 2–0 | 1–0 | 0–2 | 2–0 | 1–1 | 1–1 | 1–0 | 0–0 | 1–1 | 0–2 | — |

## Promotion play-offs

Six teams could contest the promotion play-offs depending on the point differential between the third and fourth-placed teams. It began with a preliminary one-legged round played at the home venue of the higher placed team, involving the teams placed fifth to eight. The two winning teams advanced to play the third and fourth-placed teams in the two-legged semi-finals. Those winning teams advanced to the two-legged final, where the winner was promoted to play in Serie A the following season. In the two-legged rounds, the higher seeded team played the second game at home. If tied on aggregate, the higher seeded team advanced.
| Preliminary round | Preliminary round | Preliminary round | Semi-finals | Semi-finals | Semi-finals | Semi-finals | Semi-finals | Final | Final | Final | Final | Final |
| | | | 8 | Frosinone | 0 | 2 | 2 | | | | | |
| 5 | Cittadella | 2 | 4 | Pordenone | 1 | 0 | 1 | | | | | |
| 8 | Frosinone (a.e.t.) | 3 | | | | | | 8 | Frosinone | 0 | 1 | 1 |
| | | | | | | | | 3 | Spezia | 1 | 0 | 1 |
| | | | 6 | Chievo | 2 | 1 | 3 | | | | | |
| 6 | Chievo (a.e.t.) | 1 | 3 | Spezia | 0 | 3 | 3 | | | | | |
| 7 | Empoli | 1 | | | | | | | | | | |

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

The higher-placed team played at home for the second leg. After being tied on aggregated, the lower-placed team were not relegated directly, but extra time and a penalty shoot-out were played since both teams finished tied on points during regular season.
| Team 1 | Agg.Tooltip Aggregate score | Team 2 | 1st leg | 2nd leg |
| Pescara | 3–3 (4–2 p) | Perugia | 2–1 | 1–2 (a.e.t.) |

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

| Rank | Player | Club | Goals |
| 1 | Simy | Crotone | 20 |
| 2 | Pietro Iemmello | Perugia | 19 |
| 3 | Francesco Forte | Juve Stabia | 17 |
| 3 | Stefano Pettinari | Trapani | 17 |
| 5 | Davide Diaw$^2$ | Cittadella | 15 |
| 5 | Michele Marconi | Pisa | 15 |
| 7 | Cristian Galano$^1$ | Pescara | 14 |
| 8 | Leonardo Mancuso | Empoli | 13 |
| 8 | Emmanuel Rivière | Cosenza | 13 |
| 8 | Marco Sau | Benevento | 13 |

#### Note

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

### Hat-tricks

| Player | Club | Against | Result | Date |
| Camillo Ciano | Frosinone | Trapani | 3–0 (H) | 30 October 2019 |
| Nicolas Viola | Benevento | Trapani | 5–0 (H) Archived 2020-09-11 at the Wayback Machine | 6 December 2019 |
| Marco Sau | Benevento | Ascoli | 4–0 (H) Archived 2020-09-11 at the Wayback Machine | 29 December 2019 |
| Andrey Galabinov | Spezia | Chievo | 3–1 (A) | 26 June 2020 |
| Simy | Crotone | Benevento | 3–0 (H) | 3 July 2020 |

#### Note

(H) – Home (A) – Away

### Clean sheets

| Rank | Player | Club | Clean sheets | Weeks |
| 1 | Lorenzo Montipò | Benevento | 18 | 1, 3, 7–8, 10–11, 13–17, 19, 23, 25, 28–31 |
| 2 | Francesco Bardi$^2$ | Frosinone | 17 | 8, 10–12, 14–16, 19, 21–26, 29 |
| 3 | Alberto Paleari | Cittadella | 14 | 3, 6–7, 9–12, 22, 25–26, 29–31, 37 |
| 3 | Simone Scuffet$^1$ | Spezia | 14 | 9, 11, 13, 15–16, 18, 22–23, 27, 29, 34, 36–37 |
| 5 | Luca Lezzerini | Venezia | 12 | 2, 5, 8, 12, 16, 19–20, 22, 29, 31, 35–36 |
| 5 | Adrian Šemper$^1$ | Chievo | 12 | 3, 8, 11, 15, 20, 24–25, 28, 31, 37–38 |
| 7 | Nikita Contini Baranovsky | Virtus Entella | 11 | 1–3, 10, 14–16, 18, 23, 28, 37 |
| 7 | Alex Cordaz | Crotone | 11 | 1, 3, 5–6, 19–20, 23, 27, 30, 32, 34 |
| 7 | Michele Di Gregorio$^1$ | Pordenone | 11 | 2, 7, 9, 13, 15, 19, 26, 28–29, 31 |
| 10 | Nicola Ravaglia | Cremonese | 10 | 5–6, 20, 24, 26, 28, 32, 34–36 |

#### Note

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