Real Betis ended Milan's perfect start to their UEFA Europa League campaign after defeating the Rossoneri 2-1 at the San Siro.
Antonio Sanabria bundled home from close range to open the scoring on the half-hour mark, before Giovani Lo Celso doubled the lead ten minutes into the restart with a terrific strike from 25 yards.
Substitute Patrick Cutrone reduced the deficit late on, before Samu Castillejo, who provided the assist for the Italian, saw red for a reckless challenge on Lo Celso in injury time.
Check out our breakdown of the game below.
Key Talking Point
Milan were sloppy in possession, making several loose passes, and when they were able to complete their passes they weren't in dangerous areas of the pitch.
The Rossoneri couldn't deal with the width of the field utilised by their opponents. They were outnumbered in midfield and couldn't get close enough to the away side's wing backs, whose quality deliveries proved to be too much for the defensive partnership of Zapata and Romagnoli.
The home side maintained their poor defensive showing in the second period, failing to close down the opposition. They didn't learn their lesson, which ultimately cost them, as Betis doubled their lead from range as Lo Celso picked out the top corner.
Gattuso made key alterations to get a result against Olympiacos in the previous encounter and introduced Cutrone during the interval.
The Serie A outfit took a leaf from their opponent's book late on and decided to get the ball out wide, which was successful as Cutrone latched onto Castillejo's low cross to slot home and give his side hope, which ultimately faded as the Spaniard was sent off.
Starting XI: Reina (5); Calabria (5), Romagnoli (5), Zapata (5), Laxalt (6); Bakayoko (5), Biglia (6), Bonaventura (6); Castillejo (6), Higuaín (5), Borini (5).
Substitutes: Suso (5), Bertolacci (5); Cutrone (7*).
STAR MAN - Cutrone came off the bench as he did in his last Europa League match to find the net.
He wasn't heavily involved over the course of the 45 minutes that he did play, but showed great attacking instincts and determination to run across his man and latch onto Castillejo's delivery and tap in.
WORST PLAYER - Borini didn't offer much in the first half. He started on the left side of the attack but didn't support striker Higuaín, who was isolated for the majority of the match.
He was so ineffective that he was substituted at half-time alongside Bakayoko, who also had a poor game.
Key Talking Point
Betis didn't see as much of the ball compared to Milan, but were patient in possession and moved the ball well, with their wing back system paying dividends in the first half.
Their central midfield trio of Carvalho, Canales and Lo Celso dictated the tempo of the game, allowing the side to move the ball out wide, producing some teasing deliveries that Milan couldn't deal with efficiently.
Wing back Junior Firpo was a constant danger on the left flank alongside Lo Celso and both were involved in the build-up for the opener. The former contributed to another opportunity for Sanabria that eventually found the net, but the linesman denied the La Liga outfit.
The second half followed the same pattern with Betis, who were rarely troubled until the late goal, taking advantage of Milan's lack of pressure to double their lead. Lo Celso was afforded acres of space and he found the top corner to make it two.
Starting XI: López (6); Mandi (7), Bartra (8), Sidnei (6); Barragán (7), Lo Celso (9*), Carvalho (7), Sergio Canales (7), Firpo (7); León (6), Sanabria (7).
Substitutes: Feddal (N/A), Tello (5), Loren (N/A).
STAR MAN - Lo Celso was terrific for Betis. He was involved in almost every opportunity his side created and provided the assist for Sanabria to score the opener.
He seemed to have a good relationship with wing back Firpo, who he combined with on numerous occasions throughout the match.
He also doubled his side's lead with a precise strike from outside the area, which capped off a sublime attacking display on the night. He also tracked back and won possession for Betis in his own-half, showing his defensive capabilities and overall commitment to the team.
WORST PLAYER - Betis performed brilliantly and it seems harsh to give someone this accolade, but Sidnei seemed quite rash at times. He overcommitted to challenges and on occasions left his defensive duo exposed.
Milan host fifth placed Sampdoria in their next match, hoping to get back to winning ways in the league, following their Derby della Madonnina defeat to Inter.
As for Betis, they travel to tenth placed Getafe, knowing that a victory would see them leapfrog the Madrid side.