AC Milan risked surrendering top spot in Serie A on Saturday after a late goal by substitute Amauri condemned the champions to a 2-1 home defeat by lowly Fiorentina.
Juventus play at Palermo and a win will send the Turin side top by a point with seven games left after Milan fell apart having gone ahead through Zlatan Ibrahimovic's 31st minute penalty.
Milan, who drew at Catania last weekend and were eliminated from the Champions League by Barcelona in midweek, were pegged back by Stevan Jovetic's goal on the counter attack and a Philippe Mexes mistake allowed Amauri to net the winner.
Sixth-placed AS Roma suffered a major blow in the race for third and a Champions League qualifying round berth when they lost 4-2 at third-bottom Lecce where Luis Muriel and David Di Michele scored twice.
Udinese moved joint-third with Lazio, who host rivals Napoli at 1900 GMT, after a 3-1 home win over Parma while Inter Milan's outside hopes of third were hit by a 2-2 draw against Cagliari in Andrea Stramaccioni's second game in charge.
Bottom side Cesena were held 0-0 by local rivals Bologna to all but ended their chances of survival while second-bottom Novara drew 1-1 with Genoa. European hopefuls Catania lost 3-2 at Chievo while Siena won 2-1 at Atalanta.
CL: Messi breaks records, Ibrahimovic rages
CL PHOTOS: Irrepressible Messi leads Barca into semis
Manchester City slip despite draw against Sunderland
CL: Barca wary of Milan defence as records await
Roma close in on Lazio with 5-2 win over Novara