Milan have one foot in the last 16 of the Europa League after they comfortably won an uninspiring encounter against Bulgarian champions Ludogorets in Razgrad.
Patrick Cutrone's goal on the stroke of half-time gave Milan the advantage, before Ricardo Rodriguez converted a penalty after the break. Fabio Borini scored the third goal late in injury time to give the Italians a seemingly unassailable lead.
The home side started the brighter and kept seeking out Virgil Misidjan down the left-hand side. The Dutchman clearly fancied himself against 31-year-old Ignazio Abate. Abate was booked within the first five minutes as he brought down Misidjan on the edge of the penalty area, but the resulting free-kick flashed across the face of goal.
Milan's first big chance came about as the result of good play from Suso and Giacomo Bonaventura, but Cutrone was denied by Ihor Plastun's expert block. The atmosphere at the Ludogorets Arena was deafening and it nearly boiled over when Lucas Sasha floated in a cross for Jakub Swierczok, but the Polish forward failed to connect.
Milan grew into the game as the half progressed, but chances were few and far between. The opening goal came completely out of the blue, with Cutrone heading in his sixth Europa League goal of the season from a delicious Bonaventura cross. It was the last action of the half, meaning that Milan went in at the break with a lead they barely deserved.
The first chance of the second-half fell to Marcelinho, but he could only stab a tame effort at goal which didn't trouble Gianluigi Donnarumma. The goalkeeper was beaten all-ends-up by Svetoslav Dyakov's strike a few minutes later, but the woodwork came to his rescue on this occasion. An offside flag also denied Ludogorets a penalty as the game started to hot up.
The Bulgarians' momentum was killed just after the hour mark when Cosmin Moti pushed Cutrone to the ground in the box and referee Milorad Mazic had no choice but to point to the spot. Rodriguez sent Renan the wrong way to double Milan's advantage.
The game threatened to peter out but Milan weren't done. In the second minute of added time, Franck Kessié whipped in a dangerous cross from the right and substitute Borini kept his cool to find the bottom corner and effectively end the tie before the second leg.
This was a great result for Milan, who remain unbeaten since the turn of the year and will fancy their chances of going deep into this competition. Ludogorets usually rise to the big occasion, but they were disappointing, and will have to produce a monumental performance to stand any chance in the return leg.