Did well to smother an effort from Bojan early on and bailed out Kouyate shortly before the break. However, there was little he could do to keep out El Shaarawy's excellently-placed finish. Could have been a rout had it not been for Proto.
The centre-back struggled coped well in the first half but fell to pieces after the break. Some shoddy defending left his side exposed time and again. A late tackle on Pato saw him dismissed and ended chances of a draw.
Left huge areas of space on his side's right which Milan exploited early on. Bojan was unable to make the most of the best opportunity afforded by his poor defending, but El Shaarawy did not fail to shortly after the break.
An impressive performance from the 31-year-old, who combined rugged defending with adventurous attacking runs. He was strong in the tackle and provided his side with some extra width on the left.
The youngster showed glimpses of his potential and was unlucky to see his shot bend narrowly wide of the goal in the opening 15 minutes. He was unable to unlock the Milan defence before being substituted.
Orchestrated the defence well in the first and but showed one moment of hesitancy before the break though Proto came to the rescue. He failed to cut that out in the second half and gave the ball away in the build up to the second goal.
Knocked the ball about well in the middle of the park but was pretty quiet for much of the evening. It was a very plain performance and merely kept his side ticking over. He was unable to make a difference.
The Anderlecht captain was in control of the midfield with some top-drawer passing. His delivery from set pieces were consistently impressive and one almost resulted in a goal just after the half-hour mark.
Hugged the right wing but did not provide any craft. He seemed reluctant to put the ball into the middle and thus left with Mbokani short of service. He was replaced by Yakovenko after a ineffectual display.
The imposing striker proved to be a real handful in the first half as he held up the play well. Was only denied a tap-in by Constant's interception but he disappeared when his side needed him in the second half.
Did not see an awful lot of the ball and failed to make the most of the best chance in the first half, shooting straight at Abiatti. It set the tone for his performance as he was unable to get the better of De Sciglio.
Did well to keep out Jovanovic's 13th-minute effort but was largely untested for the rest of the game. He provided a cool head at the back and took no risks as his side ensured qualification.
Was solid at the back as Milan consistently repelled Anderlecht's attempts to find a route through to the goal. Provided a moment of breathtaking quality with a superb overhead kick goal in the second half.
Put in a dominant aerial display, winning almost every header that came his way. While he struggled up against Mbokani in the first half, he was vastly improved after the break and was relatively solid.
M. De Sciglio
Kept Jovanovic quiet for the majority of the game and also found time to push up on the right flank regularly. He supplied a brilliant deep cross which El Shaarawy fired in just after half time.
N. de Jong
Broke apart the play well in midfield and screened the defence well with a combative performance. The Dutchman helped keep Anderlecht of the scoreboard for as long as possible.
Supplied a number of decent passes up to the forwards, but failed to offer Milan a creative spark in what was a hotly-contested midfield battle. It was not one of his best performances, but it was by no means a bad one.
An industrious performance in the middle of the park from the former Palermo man, who ran up and down all evening. He worked hard for his team and tracked the runners through midfield well.
Struggled to settle into the game with a string of poor touches and avoidable errors. He was lucky that Praet shot wide after his mistake, but he somewhat atoned with a brilliant goal-line clearance to keep out Mbokani in the first half.
S. El Shaarawy
Starved of service in the first half, the 20-year-old became increasingly frustrated. However, he provided a brilliant finish for the opening goal just after the restart and even mucked in with the defensive duties too. A late assist for Pato's strike capped an excellent display.
Made a bright start to the game with some exciting, tightly-controlled dribbling. Was unable to lift the ball over Proto in the early exchanges and soon vanished into the background in what was a poor match for him.
Lacked interest as he failed to get into any dangerous positions without finding himself offside. He had no conviction in the final third in what was ultimately a disappointing display.