Juventus were handed the Serie A title after Radja Nainggolan struck in the 89th minute to give Roma a 1-0 win over Napoli.
Maurizio Sarri's side went into the match knowing nothing but a victory would keep them in the title race after Juve's dramatic 2-1 win over Fiorentina on Sunday, but Nainggolan's fine low finish in the closing minutes brought an end to their lingering hopes.
Napoli enjoyed the better chances in blustery conditions in the capital, with Wojciech Szczesny saving superbly to deny the returning Gonzalo Higuain in the first half and Marek Hamsik missing a glorious late opening, but they could not find a breakthrough against Luciano Spalletti's improving side.
The result means Juve hold an unassailable 12-point lead at the top with three games to go, while Napoli are just two clear of Roma, who require one more win to be mathematically certain of a Champions League place.
Mohamed Salah whipped a shot just past Pepe Reina's top-left corner after the Napoli goalkeeper became stranded off his line, as Roma set about attacking the visitors from the off.
Roma's early rhythm was disrupted when Kostas Manolas had to go off after appearing to hurt his eye in a clash with Higuain, and Dries Mertens forced a good save from Szczesny with a drive from 20 yards.
Jose Callejon had the ball in the net but saw his effort ruled out for a narrow offside, before Szczesny denied Higuain just before the half-hour mark, racing off his line to make the block after the Napoli striker expertly turned into space.
Napoli began to assume greater control of the ball in the second half but Mertens failed to hit the target after being set up by Higuain's good run just outside the area.
The match remained end-to-end as both sides chased a crucial winner, but Hamsik, who had endured a quiet game, spurned the best chance to break the deadlock with seven minutes to play as he failed to connect properly with the ball with the goal gaping after Szczesny had fumbled a cross.
With Napoli beginning to tire, Roma began to look more and more threatening on the break, and Nainggolan finally broke the deadlock with a superb strike from the edge of the area which flew into Reina's bottom-left corner, after Salah had teed him up.
One final attack was not enough for the visitors as their dreams of a first title since 1990 came to an end, while Roma celebrated an almost certain return to the Champions League.
Key Opta stats:
- Radja Nainggolan has scored his third goals in his last five Serie apps: Nainggolan has netted all his five Serie A 15-16 goals under Luciano Spalletti.
- Roma are unbeaten in their last 14 Serie A games (winning 11, drawing three).
- Napoli have lost their last 3 away league games and they have won only one of their last six.
- Marek Hamsik has now collected 400 appearances with Napoli (all competitions).