AC Milan were made to work extremely hard to get all three points away at Frosinone on Saturday evening, needing a late winner from Luka Jovic to make it 3-2 having already surrendered a lead.
The game was cagey in the opening exchanges and it seemed like it would take something special to spark it into life. Shortly after the 15-minute mark, though, Milan had found the lead that they desperately wanted.
It was Rafael Leao who picked up the ball on the left and floated a very good cross towards Olivier Giroud at the back post, and he rose highest to head the ball into the bottom corner. There was a VAR check to ensure that Tijjani Reijnders had not committed a foul in the build-up, but it was cleared and Milan had control of the match.
That control was snatched away just a few minutes later, as Frosinone went down the other end and managed to get themselves a penalty. A cross from the right struck the hand of Leao on its way in, and multiple angles were needed to decipher whether it hit his hand, and whether it was even in the box.
The penalty was eventually confirmed, and Matias Soule stepped up to finish superbly and make it 1-1.
Milan chose to react positively and were working some decent openings in the aftermath of the equaliser. There was a powerful shot on goal from Christian Pulisic which Stefano Turati was able to beat away.
There was a concerning moment as Giroud went down with what appeared to be an ankle injury, but after some treatment on and off of the pitch, he was able to carry on. He showed he was okay minutes later when he played a great cross into the box after some wonderful play from Leao. Unfortunately, nobody was able to get on the end of it and score what would have been a superb goal. The attack was sparked by a superb Matteo Gabbia tackle.
A much worse tackle was made by Ruben Loftus-Cheek towards the end of the first half which resulted in the Englishman picking up a yellow card.
Milan so nearly regained the lead on the brink of half time as Leao surged into the box and saw his cross/shot take a huge deflection which Turati had to acrobatically claw away from the goal line.
Frosinone started the second half on the front foot and the best shooting opportunity came after some good work from Kaio Jorge, but Leao soon junked his way into the box at the other end with some great skill and saw his shot blocked.
The positive start from Frosinone was rewarded when Luca Mazzitelli managed to break into the box and score past Mike Maignan from a very tight angle with around half an hour of the match to play.
There was more drama to come, though, as Milan managed to get themselves level. A great cross came in from Yacine Adli on the left and Giroud was on the end of it, nodding the ball back across goal where Gabbia was waiting to head in.
That saw the momentum completely change, and Pioli’s decision to bring Luka Jovic on proved to be a great one as the Serbian striker managed to score almost immediately. His close-range finish put Milan 3-2 ahead with just under 10 minutes of the 90 to play.
The victory for Milan means that they are now four points behind Juventus in second, having played one game more than the Bianconeri. Frosinone sit down in 14th.