Napoli won their first Serie A title for 33 years as they drew with Udinese at Dacia Arena to spark jubilant celebrations back in Naples.
They last won the league in 1990 with a Diego Maradona-inspired side adding to their first title three years earlier.
Victor Osimhen smashed in a 52nd-minute equaliser after Sandi Lovric had given Udinese a shock lead.
And Napoli held on to the point they needed to win their third Serie A title with five games to spare.
Napoli end three decades of hurt
Napoli’s previous two titles came in the days of Argentina legend Maradona – who their stadium is now named after – in 1987 and 1990.
Following those glory days the club fell into financial decline, relegation and bankruptcy; playing in Serie C as recently as 2006.
They have won the Coppa Italia three times in the past 11 seasons but it is the Scudetto the Napoli fans craved.
They now have a new cast of superstars, with Nigeria forward Victor Osimhen scoring 21 goals in 26 league games and Georgia winger Khvicha Kvaratskhelia contributing 12 goals and 10 assists.
At 64 boss Luciano Spalletti, who twice won the Coppa Italia with Roma, becomes the oldest manager to win Serie A.
His team had the chance to lift the title with six games to spare last weekend but could only draw with local rivals Salernitana.
But with a 16-point advantage over second-placed Lazio their third Serie A title is now confirmed.
Osimhen leveller sparks wild celebrations
Their match with Udinese was almost an afterthought. Napoli fans had been partying in Naples all day before filling the Stadio Diego Armando Maradona to watch a stream of the match.
Over 10,000 fans travelled north to see their side in Udine but they were stunned into silence after 13 minutes when Lovric was given acres of space in the box before curling the hosts in front.
Napoli struggled in the first half but got the goal they needed after the restart with Osimhen finding the corner after Kvaratskhelia had forced a good save from Udinese keeper Marco Silvestri.
And after taking the lead Napoli managed the game superbly, keeping their opponents at arm’s length.
On the full-time whistle Napoli fans raced onto the pitch, starting celebrations in both Udine and Naples.
Line-ups
Udinese
Formation 3-5-1-1
- 1Silvestri
- 50birth france
- 29Biol
- 18Pérez
- 19EzizibueBooked at 17minsSubstituted forIt’s coveredat 82′minutes
- 24SamardzicSubstituted forThauvinat 82′minutes
- 11Souza Silva
- 4LovricSubstituted forArslanat 78′minutes
- 13amenitiesSubstituted forSeagullat 74′minutes
- 37Pereyra
- 30Nestorovsky
Substitutes
- 2It’s covered
- 3Month
- 5Arslan
- 8Seagull
- 14They don’t know
- 15Ulineia Buta
- 20Frying pans
- 26Thauvin
- 39Semedo Moura Sousa
- 67Guessand
- 99Flat
Napoli
Formation 4-3-3
- 1Meret
- 22of Lorenzo
- 13Rahman
- 3Kim Min-jae
- 17Olivera
- 99Zambo Anguissa
- 68Lobotka
- 91NdombeleSubstituted forZielinskiat 64′minutes
- 7Diamond
- 9Osimhen
- 77KvaratskheliaSubstituted forLozanoat 86′minutes
Substitutes
- 4Demme
- 5Nunes Jesus
- 11Lozano
- 12Marfella
- 18Simeone
- 19Bereszynski
- 20Zielinski
- 23Zerbin
- 31The Zedas
- 55Østigård
- 70Gaetano
- 81Raspadori
- 95Gollini
Live Text
-
Match ends, Udinese 1, Naples 1.
-
Second Half ends, Udinese 1, Napoli 1.
-
Delay over. They are ready to continue.
-
Delay in match because of an injury Marco Silvestri (Udinese).
-
Corner, Napoli. Conceded by Rodrigo Becão.
-
Victor Osimhen (Napoli) wins a free kick in the attacking half.
-
Foul by Nehuen Perez (Udinese).
-
Substitution, Napoli. Hirving Lozano replaces Khvicha Kvaratskhelia.
-
Substitution, Udinese. Florian Thauvin replaces Lazar Samardzic.
-
Substitution, Udinese. Festy Ebosele replaces Kingsley Ehizibue because of an injury.
-
Delay over. They are ready to continue.
-
Delay in match because of an injury Kingsley Ehizibue (Udinese).
-
Substitution, Udinese. Tolgay Arslan replaces Sandi Lovric.
-
Eljif Elmas (Napoli) wins a free kick in the defensive half.
-
Foul by Ilija Nestorovski (Udinese).
-
Stanislav Lobotka (Napoli) wins a free kick in the attacking half.
-
Foul by Kingsley Ehizibue (Udinese).
-
Substitution, Udinese. Marvin Zeegelaar replaces Destiny Udogie because of an injury.
-
Offside, Udinese. Rodrigo Becão tries a through ball, but Ilija Nestorovski is caught offside.
-
Delay over. They are ready to continue.