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'
|´Crazy´ Munich could convince Guardiola to stay|
|Defiant Garcia refuses to resign despite Roma slump|
|Monk confident Swansea can turn the corner|
|Bellerin: Arsenal can cope without Sanchez|
|McClaren: Newcastle not panicking|
|Klopp delighted with Sturridge, Henderson returns|
|I wouldn´t swap Lukaku for Vardy - Martinez|
|MLS Review: Timbers, Crew to meet in final|
|Nuno saddened by Valencia departure|
|Morata will become a key player - Allegri|
|Serie A Review: Juve revival continues as Roma stutter|
|Ligue 1 Review: Marseille and Monaco share thriller as Caen go second|
|Nuno resigns from Valencia post|
|Palermo 0 Juventus 3: Four Serie A wins in a row for improving champions|
|Neymar: ´MSN´ should be Ballon d´Or final three|
|Madrid must ´give everything in each match´ - Navas|
|´I take full responsibility´ - Monk|
|Neil hails Grabban display after Arsenal draw|
|Arsenal will survive ´bad spell´ - Wenger|
|Klopp proud of ´perfect´ Liverpool win|
|Bundesliga Review: Aubameyang at the double for Dortmund, Leverkusen draw with Schalke|
|Wenger: I nearly rested Sanchez|
|Ronaldo did well, insists Benitez|
|Liverpool 1 Swansea City 0: Milner spot on again as Henderson and Sturridge return|
|Norwich City 1 Arsenal 1: Sanchez, Koscielny limp off as Gunners are held|
|Bilic worried about Sakho muscle injury|
|Angers v PSG: Kurzawa wants unbeaten season|
|Tuchel relieved to see Borussia Dortmund return to winning ways|
|Pulis ´disappointed´ with free-kick decision|
|Manchester City v Hull City: Wounded Tigers must avoid ´a pasting´, warns Davies|
|Reus Deportiu v Atletico Madrid: Simeone´s side face in-form underdogs|
|West Ham needed a second goal - Bilic|
|Deila slams Stokes following Twitter outburst|
|Eibar 0 Real Madrid 2: Bale and Ronaldo on target|
|Borussia Dortmund 4 Stuttgart 1: Aubameyang double hands Kramny a losing start|
|Chelsea performance enthuses Mourinho|
|Mourinho: Costa wouldn´t use a bib to hurt me!|
|Chelsea felt like ´a small team´ to Tottenham - Pochettino|
|West Ham 1 West Brom 1: Reid own goal steals point for Pulis´ men|
|´Impossible´ to compare Icardi and Higuain - Mancini|
|Stoke City v Sheffield Wednesday: Visitors are clear underdogs, claims Carvalhal|
|´It was pretty embarrassing´ - Colback slams Newcastle|
|Pochettino lauds his Tottenham players as ´heroes´|
|Mourinho denies Diego Costa rift|
|Hazard rues ´beautiful´ Lloris save|
|Inverness Caledonian Thistle 1 Celtic 3: Champions triumph despite Stokes storm|
|Inter playing to their strengths - Sarri|
|Tottenham 0 Chelsea 0: Pochettino´s side set record unbeaten run|
|Middlesbrough v Everton: Barry aiming to bounce back|
|AC Milan v Crotone: Mihajlovic targets four wins from four before mid-season break|
|Galliani: Milan refused to sell Niang|
|Premier League loan move unlikely for Drogba|
|Fekir dreams of Barcelona move and Ballon d´Or|
|Inter will not be criticised if they win the Scudetto - Prandelli|
|Newcastle fans right to be angry - McClaren|
|Ghoulam: Napoli-Inter not decisive in Scudetto race|
|Tiago out for at least three months|
|Monk: Klopp must make Liverpool title contenders|
|Lahm praises Bayern for adapting to injuries|
|Central Coast Mariners 0 Western Sydney Wanderers 2: Visitors win fifth straight|
|Arsenal building to title challenge - Mertesacker|
|Henry: Premier League title a five-horse race|
|Olsson urges Ibrahimovic to make Premier League move|
|Niang delighted with first Serie A goals|
|Wenger backs Campbell to earn spot|
|Much more to come from Firmino - Klopp|
|Kane dreaming of Premier League title win|
|Neymar´s evolution has been startling - Dani Alves|
|Van Gaal explains Lingard, Rojo absences|
|Messi number one regardless of goals - Iniesta|
|Klopp: I´m free to sign Dortmund players|
|Mourinho: Hazard not Chelsea´s number 10|
|Mihajlovic not surprised by Niang form|
|La Liga Review: Barcelona march on; victory for Atletico Madrid|
|Muller is an irreplaceable gem - Sammer|
|Ligue 1 Review: PSG thump Troyes, Angers rise into second|
|AC Milan 4 Sampdoria 1: Niang leads the way|
|Simeone excited by Atleti´s potential|
|Van Gaal: United dominated Leicester draw|
|Thiago Silva planning to retire at PSG|
|Ranieri delight for ´fantastic man´ Vardy|
|Schweinsteiger unhappy with United point at Leicester|
|Higuain: Sarri has improved me|
|Blanc shrugs off Cavani strop|
|Vardy reflects on ´unbelievable´ record achievement|
|Neymar: I want new Barcelona contract|
|Atleti suffer Tiago blow|
|Football League Review: Zamora sends Brighton back top of Championship|
|Koeman blames errors for Manchester City defeat|
|Leicester City 1 Manchester United 1: Vardy breaks Premier League record but Schweinsteiger has fina|
|Torino 2 Bologna 0: First Rossoblu defeat for Donadoni|
|Atletico Madrid 1 Espanyol 0: Simeone´s men extend unbeaten streak|
|Villa´s defeat to Watford was painful - Garde|
|Allardyce hails Watmore impact as Sunderland exit drop zone|
|Van Nistelrooy congratulates Vardy on goal record|
|Martinez: Late Bournemouth equaliser a huge blow|
|Pellegrini unsure on Aguero fitness|
|Newcastle can´t handle adversity - McClaren|
|Luis Enrique: Messi, Suarez and Neymar only happy when they all score|
|Howe feels Bournemouth on right path after Everton draw|
|Gomes has concussion - Flores|
|Paris Saint-Germain 4 Troyes 1: Cavani and Ibra on target in routine win|
|Guardiola waits on Boateng injury news|
|Hughes hits out at officials after Sunderland defeat|
|Vardy´s record - goal by goal|
|Vardy scores against United to break Premier League record|
|Benitez refuses to blame Kroos for Madrid collapse|
|Praise at Barcelona won´t lead to complacency creeping in - Alves|
|Pardew takes no extra satisfaction in Newcastle thrashing|
|Goalscorer Delph heartened by Manchester City response|
|Bundesliga Review: Hamburg win Nordderby, Bayern extend lead|
|Scottish Premiership Review: Aberdeen climb to second spot|
|Sunderland 2 Stoke City 0: Van Aanholt and Watmore on target as Wearsiders leave it late|
|AFC Bournemouth 3 Everton 3: Late, late drama as Stanislas snatches draw|
|Aston Villa 2 Watford 3: Ighalo, Deeney down Garde´s men|
|Manchester City 3 Southampton 1: De Bruyne, Delph and Kolarov sink Saints|
|Crystal Palace 5 Newcastle United 1: Bolasie, McArthur doubles sink McClaren´s woeful side|
|Barcelona 4 Real Sociedad 0: Neymar and Suarez on target again|
|Bayern Munich 2 Hertha Berlin 0: Muller and Coman ensure routine win|
|Italy and Juve legend Zoff suffering from health difficulties|
|Roma must prove themselves after Barcelona thrashing - Garcia|
|Willian can set new Champions League record - Juninho|
|Benitez: Ronaldo and Bale have total freedom|
|Napoli v Inter: Scudetto dream burns bright for Higuain|
|Former Liverpool defender Byrne dies, aged 77|
|Uruguay and Argentina should host World Cup 2030 - AUF chief|
|Tuchel expects Aubameyang and Reus to be fit for Stuttgart clash|
|Wenger defends 14-minute flight to Norwich|
|Carragher hints Liverpool could move on from Sturridge|
|Lavezzi: PSG are too good for Ligue 1|
|Juve season is back on track, claims Allegri|
|Guardiola exit would be a shame for Bayern - Beckenbauer|
|A-League Review: Victory punish Roar draw to move top|
|Mascherano back in Barcelona squad|
|Costa ruled out of Hertha clash|
|´He´s a nice guy´ - Klopp reveals Rodgers meeting|
|Mexes frustrated by Milan´s slump|
|Villa not relegation certainties, says Garde|
|Ryan and Valencia desperate to end dismal Sevilla record|
|Pochettino talks up positive Mourinho relationship|
|Seedorf: Premier League job would be an honour|
|Carragher: Grealish running out of chances|
|Mourinho: Book sales the reason behind Drogba criticism|
|Allardyce: Sunderland looking to emulate Juventus|
|Barkley eyeing Everton silverware|
|Ramsey to continue in unfavoured wide role|
|Stoke boss Hughes wants Arnautovic stay|
|Tottenham no longer fear Chelsea, says Dier|
|Rooney deserves his starting place - Van Gaal|
|Klopp: Lewandowski, Aubameyang show Benteke can flourish with patience|
|Costa must read the game better - Mourinho|