Cyril Thereau fought back twice to give Chievo a thrilling last-gasp 2-2 draw away to Atalanta.
Bologna utterly dominated this match and rattled the woodwork twice, but Genoa somehow held on to a point.
Lazio were beaten 1-0 by Cagliari, meaning they end the campaign behind Roma and must win the Coppa Italia to reach Europe.
Udinese took the lead after 50 seconds and Antonio Di Natale scored a sensational goal to qualify for Europe, as Inter were crushed 5-2 at home.
The curtain will come down on an end of an era when Palermo welcome Parma to the Stadio Renzo Barbera on Sunday.
Fiorentina tasted the Champions League until the final six minutes, when Milan came back in Siena and made this 5-1 victory redundant.
Roma pushed past Napoli 2-1 and with this result end the season ahead of rivals Lazio.
Sampdoria beat Scudetto winners Juventus for the second time this year, but the 3-2 result had some controversial incidents.
Milan really cut it fine, scoring twice in the last six minutes to win 2-1 in Siena and secure a Champions League place.
With his last game for Torino, Rolando Bianchi earned a point in this 2-2 draw with Catania.