AC Milan complicated their passage to the Champions League with a goalless draw at home against Cagliari in the San Siro on Sunday.
Stefano Pioli’s side could have sealed a return to elite European football for the first time since the 2013-2014 season with a win over the Sardinians.
But with star striker Zlatan Ibrahimovic injured the northerners dropped points with a top-four finish going down to the wire in their final game at second-placed Atalanta next weekend.
“We were too tense,” said Milan coach Pioli.
“We had the game of a lifetime against Juventus, then Torino, so it will be another against Atalanta. We will have to try.”
Atalanta ensured a third consecutive season of Champions League football with a 4-3 win over Genoa on Saturday.
Milan are third, equal on 76 points with fourth-placed Napoli, who won 2-0 at Fiorentina earlier on Sunday.
But Juventus are just a point further behind on 75 after beating champions Inter Milan 3-2, with their final game at Bologna.
Cagliari had already assured their top flight survival before kick-off after Crotone held Benevento 1-1.
Milan had beaten Torino 7-0 midweek, but the hosts’ poor home form continued with just eight wins out of 19 games played in the San Siro.
Hakan Calhanoglu, Samu Castillejo, Alexis Saelemaekers and Ante Rebic all missed chances with Cagliari also threatening.
Gianluigi Donnarumma saved two second-half headers from Leonardo Pavoletti and Diego Godin.
In Florence, Napoli took all three points as they look to return to the Champions League having missed out this season.
As in Turin on Saturday, when Cristiano Ronaldo missed a penalty for Juventus but scored with the follow-up, Napoli skipper Lorenzo Insigne scored after 56 minutes after Fiorentina goalkeeper Pietro Terracciano had saved his shot from the spot.
Insigne missed two further chances for a second but the Italian then played a role in Napoli’s second goal.
The striker sent the ball through for Piotr Zielinski whose shot took a deflection off Fiorentina defender Lorenzo Venuti into his own goal after 67 minutes.
Napoli’s final game will be at home against midtable Hellas Verona.
Juventus play their final game at Bologna desperate to avoid missing out on the Champions League for the first time in a decade.
Lazio will not play among the European elite next season after a 2-0 derby defeat to Roma on Saturday.
Sixth-placed Lazio are eight points behind Juventus having played a game less.
Benevento, in 18th, lost two points in their bid for top flight survivial against already-relegated Crotone.
Their fate will be played out next week against Torino, who are just three points ahead but have played a game less.
Meanwhile, eighth-placed Sassuolo beat Parma 3-1 with coach Roberto De Zerbi revealing after the game he had told the players he would be leaving at the end of the season
Limited-time offer: Big stories, small price. Keep independent media alive. Become a Scroll member today!
Our journalism is for everyone. But you can get special privileges by buying an annual Scroll Membership. Sign up today!