Parma are back in Serie A just three years after bankruptcy, as Frosinone incredibly fumbled promotion with a 2-2 draw against Foggia.
Click here for the full Serie B section, including results, fixtures and tables.
The final round of the regular season saw Empoli already promoted and one more ticket available directly into the top flight, with three contenders: Frosinone on 71 points, Parma 69 and Palermo 68.
When Parma were leading, and Alberto Gilardino horribly chipped a Spezia penalty over the bar, and Foggia took the lead at the stunned Stadio Stirpe, it put the Ducali in that automatic promotion spot.
Palermo also went in front away to Salernitana with an Ivaylo Chochev screamer to send Frosinone temporarily down to fourth place.
In important news for the upcoming promotion play-offs, Chochev was then stretchered off in tears with what looks to be a serious injury.
Amato Ciciretti, who joined from Benevento in January, doubled Parma’s lead after Matteo Pessina was caught in possession and the Frosinone siege on Foggia meanwhile finally found a breakthrough with Luca Paganini’s towering header on a corner.
They needed to win, though, and Matteo Rubin accidentally turned another set play into his own net to turn it around completely, giving Frosinone the lead.
It seemed to be all going to plan, but at the 89th minute Foggia struck on the counter with a delightful chip from Roberto Floriano for 2-2.
This again handed the automatic promotion place to Parma, who become the first Italian side ever to manage three consecutive promotions.
It still wasn’t over, as Camillo Ciano’s free kick was fingertipped out of the top corner.
Parma were one of the biggest Italian clubs of the 1990s, winning the Cup Winners’ Cup, UEFA Cup, European Super Cup, Italian Super Cup and three editions of the Coppa Italia.
They were declared bankrupt in March 2015 and started again that summer from Serie D, but earned back-to-back promotions.
Venezia, Bari, Cittadella and Perugia (who made their debut under new Coach Alessandro Nesta) also enter the promotion play-offs.
Ternana and Pro Vercelli were already relegated, with on the night Novara, Virtus Entella, Ascoli, Avellino, Pescara, Brescia and Cesena at risk of sliding into the play-out.
Novara went down, as Ascoli and Virtus Entella will face off for the relegation play-out.
Ascoli 0-0 Brescia
Bari 2-0 Carpi
Galano 27 (B), Brienza 45 (B)
Cesena 1-0 Cremonese
Kupisz 69 (Ce)
Cittadella 2-0 Pro Vercelli
Kouame pen 72 (C), Bartolomei 78 (C)
Sent off: Alcibiade 70 (PV)
Empoli 2-1 Perugia
Di Carmine 2 (P), Pasqual 43 (E), Donnarumma 63 (E)
Frosinone 2-2 Foggia
Mazzeo 35 (Fo), Paganini 66 (Fr), Rubin og 73 (Fr), Floriano 89 (Fo)
Novara 0-1 Virtus Entella
Crimi 68 (VE)
Salernitana 0-2 Palermo
Chochev 45 (P), La Gumina 85 (P)
Spezia 0-2 Parma
Ceravolo 11 (P), Ciciretti 61 (P)
Missed penalty: Gilardino 29 (S)
Ternana 1-2 Avellino
Signori 9 (T), Ardemagni 39 (A), Castaldo 45 (A)
Venezia 0-0 Pescara