Milan kept alive their faint hopes of Serie A title glory as Hakan Calhanoglu's fine strike sealed a pulsating 3-2 win over Fiorentina on Sunday. 

Zlatan Ibrahimovic had put them ahead after nine minutes to become the oldest player to reach 15 goals in a single Serie A season, aged 39 years and 169 days, but Erick Pulgar restored parity soon after.

Fiorentina took the lead shortly after the break thanks to a cool finish from Franck Ribery, yet Milan powered back thanks to Brahim Diaz and Calhanoglu's winner 18 minutes from full-time. 

The result means Milan move to within six points of leaders Inter, whose game against Sassuolo this weekend was called off after a COVID-19 outbreak at the club.

Fikayo Tomori cleared Martin Caceres' header off the line after five minutes as the hosts started brightly, but it was Milan who struck first. 

Simon Kjaer's clipped ball over the top found Ibrahimovic and the Sweden international struck past an exposed Bartlomiej Dragowski. 

That lead was cancelled out after 17 minutes, though, when Pulgar whipped a free-kick into Gianluigi Donnarumma's top-right corner from 20 yards. 

Both sides struck the crossbar before half-time, German Pezzella denied after an inventive flick from Valentin Eysseric's corner, while Ibrahimovic clipped against the frame of the goal after being played in by Calhanoglu.

La Viola went ahead six minutes after the restart, Ribery stroking home his second top-flight goal of the season from 15 yards after he had been teed up by Dusan Vlahovic.

The Rossoneri drew level in the 57th minute, however, when Diaz reacted quickest to poke home Kjaer's knockdown from a corner. 

Ibrahimovic struck the post with a cross before Calhanoglu slotted into substitute goalkeeper Pietro Terracciano's bottom-left corner from just inside the penalty area to ensure neighbours Inter cannot relax just yet.

What does it mean? Milan not out of title race just yet

Inter are still favourites to end Juventus' stranglehold on the Serie A title this season, but Stefano Pioli's side ensured their local rivals know they are ready to pounce should they slip up.

After just one win in five games across all competitions before their trip to Florence, the Rossoneri can at least head into the international break with a spring in their step. The key will be making sure they maintain that when domestic action resumes in a fortnight.

Calhanoglu caps fine display

It was fitting that Calhanoglu scored the decisive goal. The Turkey international's winner came from one of a game-high four shots, while no player on the pitch made more than his four key passes. He has now scored four goals against Fiorentina in Serie A, at least two more than against any other side in the competition.

Saelemaekers offers little

It was little surprise to see Alexis Saelemaekers hauled off before the hour. The Belgian did not register a single shot or key pass to a team-mate, while no Milan starter had fewer than his 25 touches.

Key Opta Facts

- Milan have won 12 games away from home in Serie A this season: a joint-record for the Rossoneri in a single top-flight campaign with five away games to play (level with 2004-05 and 2011-12). 

- Ibrahimovic is the first Milan player to score 15+ goals in his first 15 appearances in a single Serie A season in the three points per win era (since 1994-95).

- Kjaer provided two assists, 4,438 days after his only previous one in Serie A, back in January 2009, with Palermo against Udinese. 

- Each of Brahim Diaz's two Serie A goals have been scored on the road, his only previous effort coming in September at Crotone.

What's next?

Milan host Sampdoria on April 3 following the international break, while Fiorentina visit Genoa on the same day.