Adrien Rabiot headed Juventus to a hard-fought 1-0 win over old rivals Fiorentina on Sunday but survived a scare after the away side's late leveller was ruled out for an extremely tight offside.

France midfielder Rabiot met Angel Di Maria's exquisite cross with a header which just crossed the line in the 34th minute, his fourth Serie A goal of the season which moved Juventus up to ninth.

Fiorentina thought they had snatched a late point when Gaetano Castrovilli rifled home a first-time finish with a minute remaining.

However his superb strike was chalked off following a pitchside VAR check when referee Michael Fabbri ruled Luca Ranieri was interfering with play in the build-up to the goal as his heel strayed offside.

Massimiliano Allegri's side are in mid-table due to the 15-point penalty inflicted last month for what the Italian Football Federation ruled was illicit transfer activity designed to artificially boost their accounts.

After 22 matches played Juve are 10 points behind Lazio who currently occupy the last European place in sixth following their 2-0 home defeat to Atalanta on Saturday.

"We needed a bit of time to adapt (to the punishment), now we need to go after the teams above us one by one," said Allegri.

"We shouldn't forget that we would have been second on 44 points."

Juventus could have sealed victory earlier but Dusan Vlahovic was denied his third goal in as many league matches since returning from injury when his superb lifted finish over Pietro Terracciano just before the hour mark was ruled out for another extremely tight offside.

Moise Kean replaced Vlahovic in the 65th minute and should have added to Juve's lead twice in a matter of seconds, Terracciano rushing out to stop the Italy forward who then could not finish from close range at the subsequent corner.

However the away side were not spectators and Jonathan Ikone was stopped from levelling almost straight after Rabiot's winner when Manuel Locatelli pulled off a clearance while still on the ground.

Juve are level on 29 points with Monza, whose dream debut Serie A season continued with a 1-0 win at Bologna which moved them into the top half of the division.

Monza dream

Giulio Donati poked home the only goal in the 25th minute of a tight game at the Stadio Dall'Ara.

Raffaele Palladino's side are unbeaten in eight matches in the league, a run which includes drawing with Inter Milan and a historic win at Juve.

Marko Arnautovic returned to action after over a month out but the presence of Bologna's star forward was not enough to inspire his team to get a result.

Thiago Motta's Bologna drop down a place to 10th after being overtaken by Monza on goal difference.

Both are a point behind Udinese, whose defender Destiny Udogie scored the fastest goal of the Serie A season in their 2-2 draw with Sassuolo.

Italy international Udogie, who will join Tottenham Hotspur next season, opened the scoring after just 25 seconds with a right-footed strike from the edge of the area.

However the 20-year-old's strike couldn't stop Udinese's dismal run of form at home, where they have not won a match since beating Inter Milan in mid-September.

Udinese started the season strongly but have won only once in their last 14 league matches.

Sassuolo are 15th and are sweating on the condition of star man Domenico Berardi who had to leave the field with a thigh problem.