Mario Balotelli and Philippe Mexes scored late on at Siena as Milan came from behind to secure a place in the UEFA Champions League.
Balotelli’s 84th-minute penalty had cancelled out Claudio Terzi’s first-half header, before Mexes netted a crucial winner three minutes from time.
A hard-fought second half saw both sides reduced to 10 men in the space of just a few minutes after Massimo Ambrosini and Christian Terlizzi were both sent off for second bookable offences.
But it was the late goals that made all the headlines as Milan guaranteed their place at European football's top table in dramatic circumstances.
Milan came into the game needing to win in order to beat Fiorentina to the final UEFA Champions League place, and they made five changes to the team that played out a controversial 0-0 draw with Roma last week.
Sulley Muntari's bizarre red card in that game meant that he was suspended, while Ignazio Abate was preferred ahead of Kevin Constant.
Robinho, Antonio Nocerino, Riccardo Montolivo and M'Baye Niang were all handed starts.
Siena, whose relegation was confirmed with a 2-1 loss away to Napoli, welcomed back Alessandro Rosina.
Milan began the game with an expected level of urgency, creating a flurry of chances during the opening exchanges.
Balotelli was the first to test Gianluca Pegolo in the Siena goal, seeing his stinging long-range effort tipped over the crossbar.
A few moments later, Cristian Zapata saw a header cleared off the line before Brazilian Robinho was unlucky not to break the deadlock when he saw his vicious swerving shot palmed away by Pegolo.
And Milan were made to pay for their profligacy just before the half-hour mark when the hosts took an unlikely lead through Terzi.
A pinpoint free-kick from Rosina found the head of the defender, who took advantage of some slack Milan marking to direct his header past Chrisitan Abbiati.
Milan nearly conjured up the perfect response just two minutes later, when Balotelli crashed a shot onto the crossbar.
And the Italian was involved again just before half-time, forcing a decent save from Pegolo as Siena weathered the Milan storm.
The second half began in similarly frustrating circumstances for Milan, as they struggled to find a decisive final ball. And 10 minutes later they were down to 10 men when Ambrosini slid in rashly on Adrian Callelo and was shown a second yellow card.
The numbers were even soon after, though, as the home side were also down to 10 men - Terlizzi given his marching orders for jumping into a challenge with Balotelli.
Balotelli made his mark in some style 10 minutes from time when he was brought down in the box by Felipe to give Milan hope.
The Italian brushed himself down to calmly slot home the resulting spot-kick and the comeback was on.
Then, with just two minutes to go, Mexes found himself on the end of a Montolivo cross to slot home the dramatic winner.
|88||C. Terlizzi||45' 70'|
|14||F. Della Rocca|
|Coach: G. Iachini|
for A. Rosina 61'
for I. Emeghara 75'
for M. Rubin 89'
|Mancini demands killer instinct from Inter after Carpi scare|
|Allegri praises Juve spirit in poor display at Roma|
|Monaco 0 Paris Saint-Germain 3: Cavani up and running as PSG march on|
|Carpi 1 Inter 2: Jovetic double settles lacklustre encounter|
|Sevilla 0 Atletico Madrid 3: Hosts thwarted once again by Simeone|
|Inter land Wolfsburg´s Perisic|
|Shelvey and Vardy named in England squad|
|Montero injury nothing serious - Monk|
|Van Gaal in the dark over De Gea future|
|Werder Bremen 2 Borussia Monchengladbach 1: Vestergaard seals first win|
|Roma 2 Juventus 1: Pjanic and Dzeko down stuttering champions|
|United could not cope with Swansea - Van Gaal|
|Monk: Swansea are a Premier League force|
|Lyon swoop for Malaga midfielder Darder|
|Tuchel hails table toppers Dortmund|
|No complaints for Neil after Southampton loss|
|Swansea City 2 Manchester United 1: Gomis spoils Van Gaal´s day|
|De Bruyne relieved to complete City switch|
|Koeman stands firm over Mane and Wanyama futures|
|Bahebeck rushed to hospital with chest pains|
|Borussia Dortmund 3 Hertha Berlin 1: Tuchel maintains perfect start|
|Manchester City complete De Bruyne swoop|
|Weihrauch strikes twice as Bayern overpower fans|
|Saint-Etienne 2 Bastia 1: Two sent off in first defeat of the season for visitors|
|Southampton 3 Norwich City 0: Tadic at the double for Koeman´s men|
|Paderborn swoop for Kirch|
|Bayern loan Coman from Juventus|
|Schalke will not rush decision over Wolfsburg target Draxler|
|Fenerbahce secure Markovic loan|
|O´Neill trims Ireland squad to 28|
|Sherwood: I´ve done my hamstring|
|Dante set for Wolfsburg switch|
|Neymar knows nothing of Man United interest|
|Ibisevic leaves Stuttgart for Hertha|
|International break unwelcome for Mourinho|
|Muto a ´perfect fit´ for Mainz|
|Lampard pledges NYC commitment|
|Van Gaal: I listen to Rooney|
|MLS Review: Whitecaps falter, Eastern Conference heats up|
|´I think a yellow would have been harsh´ - Noble baffled by his red card|
|Rodriguez´s quality ´unquestionable´ - Benitez|
|Abdennour chooses Valencia|
|Giovinco to fly to Italy despite injury|
|La Liga Review: Real Madrid, Celta notch big wins|
|Mihajlovic: I feel like I lost|
|Real Madrid 5 Real Betis 0: Rodriguez scores twice in Benitez´s first Bernabeu win|
|Balotelli has a lot of work to do, declares Bacca|
|Luis Enrique delighted with Vermaelen´s form|
|Bundesliga Review: Leverkusen no match for Muller-inspired Bayern, Frankfurt thump Stuttgart|
|Milan 2 Empoli 1: Adriano header seals first league win for Mihajlovic|
|Ligue 1 Review: Fekir hat-trick inspires Lyon, Reims take Lorient apart|
|Barcelona 1 Malaga 0: Vermaelen rewards patient champions|
|Muller denies Van Gaal contact|
|Pochettino not concerned about goalless Kane|
|Martinez hails ´immense´ Stones|
|Flores not concerned by lack of Watford goals|
|Evans completes West Brom switch|
|Howe remains upbeat despite concerning injuries|
|Rash Cattermole frustrating Advocaat|
|Bayern Munich 3 Bayer Leverkusen 0: Muller marks 200th appearance in style|
|Tottenham 0 Everton 0: Howard keeps hosts at bay|
|Sako gives Palace new dimension - Pardew|
|Rodgers rues self-inflicted Liverpool defeat|
|Villa were robbed during Sunderland draw, blasts Sherwood|
|Football League Review: Brighton move top, Orient maintain winning start|
|I wish I had a fourth substitute, says Chelsea boss Mourinho|
|Pulis hails West Brom match-winner Rondon|
|´Gladiator´ spirit is more important than anything - Ranieri|
|Bilic defends ´park the bus´ tactics after Anfield win|
|Pellegrini quiet on De Bruyne after record-breaking win|
|Hughes fumes at Stoke dismissals after West Brom loss|
|Mourinho: Chelsea did not deserve Palace defeat|
|Scottish Premiership Review: Celtic return to the summit as Hearts suffer surprise defeat|
|Liverpool 0 West Ham 3: Defensive woes return for Rodgers´ men|
|Manchester City 2 Watford 0: Sterling opens account as City become record breakers|
|Bournemouth 1 Leicester City 1: Vardy rescues a point|
|Chelsea 1 Crystal Palace 2: Late Ward winner seals dramatic victory|
|Stoke City 0 West Brom 1: Rondon gives Pulis win over nine-man hosts|
|Aston Villa 2 Sunderland 2: M´Vila and Lens secure hard-fought point|
|Blackett moves to Celtic on loan|
|McClaren laments ´harsh´ Mitrovic red|
|Wenger: Arsenal ´cautious´ in Newcastle win|
|Sevilla can mirror Atletico strengths - Simeone|
|Ibrahimovic and Di Maria in PSG squad for Monaco clash|
|Newcastle United 0 Arsenal 1: Mitrovic off as Coloccini own goal settles it|
|Barca´s Suarez ends Sevilla loan to make Villarreal switch|
|Allegri confirms imminent Coman departure|
|Garcia demands more ahead of Juve clash|
|Knee injury sidelines Ozil|
|Dortmund boost defence with Mainz´s Park|
|Ruddy hoping to impress Hodgson|
|Wolfsburg proved there is life after De Bruyne - Hecking|
|Van Gaal unsure if Romero will replace De Gea long-term|
|Dzeko wants Totti partnership at Roma|
|No excuses for City - Pellegrini|
|San Jose Earthquakes 1 LA Galaxy 0: Salinas´ header levels Cali Clasico tally|
|Koeman plays down expectations|
|Stuttgart´s Langerak suffers surgery setback|
|Rodgers hails Milner´s leadership, mentality|
|Conte hints at Giovinco recall, doesn´t rule out Balotelli|
|Martinez slams Chelsea over Stones pursuit|
|Leverkusen are title contenders - Guardiola|
|Babel in sexism controversy|
|Pellegrini prepared to wait for Otamendi|
|Sevilla v Atletico Madrid: Llorente hoping to repay faith|
|Veloso back for Portugal|