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'
|Coupe de France Review: Guingamp leave it late, Auxerre win on penalties|
|Juventus 1 Fiorentina 2: Salah double hands visitors advantage|
|New Cardiff badge to ditch Welsh dragon for ´oriental dragon´|
|Reid contract a ´real statement´ from West Ham, says Nelsen|
|BREAKING NEWS: Cisse accepts FA charge over spitting|
|Van Gaal fumes at suggestion of poor relationship with Giggs|
|Evans and Cisse charged over spitting|
|Cellino ban extended after settlement with Football League|
|Podolski could return to Arsenal, says agent|
|Van Gaal continues to stand by Evans|
|Sherwood wants blood and thunder FA Cup tie|
|QPR v Tottenham: Sandro targets early goals|
|Bradford City v Reading: Parkinson calls for best performance of the season|
|Aston Villa v West Brom: Sherwood expects repeat performance|
|Cisse apologises for spitting incident|
|Parkinson relishing Reading reunion|
|Suarez set for Anfield return|
|Toulouse deny Casanova replacement rumours|
|Reus remains a doubt for Hamburg clash|
|Evans denies spitting at Cisse|
|Robinho recalled to Brazil squad|
|Athletic Bilbao v Real Madrid: Ancelotti wants reaction|
|Milan v Verona: Hosts seek response|
|Hamburg v Borussia Dortmund: Resurgent visitors face bogey team|
|Lacazette: Lyon may sell for right price|
|Hannover v Bayern Munich: Champions prepared for battle|
|Paris Saint-Germain v Lens: David Luiz calls for focus|
|Cisse appointed Senegal coach|
|Bundesliga Preview: Immobile out to impress as Dortmund target top half|
|Ligue 1 Preview: Lyon aim to bounce back, PSG ready to pounce|
|La Liga Preview: Simeone looks to Torres, Real seek response|
|League Two Preview: Ainsworth keen to take pressure off, Burton seek return to winning ways|
|Busquets to miss Rayo clash|
|Championship Preview: Watford out for three wins in a week|
|League One Preview: Freeman issues rallying call to leaders|
|Gutierrez return lifted St James´ Park - Carver|
|Balotelli: ´Someone doesn´t like me´|
|Poyet charged by FA after Bruce spat|
|Sanchez resilience delights Wenger|
|Blanc brushes off PSG treble talk|
|Toure, Bony struggling with AFCON fatigue, claims Pellegrini|
|Gomis offers assurances over health|
|Emre can become world-class - Rodgers|
|Reid signs new West Ham deal|
|CONCACAF Champions League Review: America, Alajuelense advance|
|Magath open to Rangers role|
|Copa Libertadores Review: Corinthians preserve perfect record|
|MLS and players union reach agreement|
|Wenger hails Giroud´s mental strength|
|We didn´t give Espanyol a chance - Valverde|
|Benteke eyeing FA Cup glory|
|Serie A Preview: Inzaghi under pressure, Roma eye win|
|Sturridge: ´I am ready to play every game´|
|Luis Enrique coy on Busquets injury|
|Dyche realistic after Anfield loss|
|Matuidi sets sights on PSG quadruple|
|Championship Review: Wigan boost survival hopes, Blackpool´s misery continues|
|DFB-Pokal Review: Bayern through, Bremen upset|
|Hughes: Stoke evolution is ahead of schedule|
|Allardyce: Big calls went against West Ham|
|Van Gaal defends Evans amid spitting furore|
|Pearson calls for video technology after City snubs|
|Rodgers hails Henderson impact|
|Pochettino proud of Tottenham response|
|Kluivert appointed Curacao coach|
|´Devastated´ Carver slams referee for penalty gaffe|
|Hero Hazard thrills Mourinho|
|Benitez praises Napoli ´intensity´|
|Mourinho laughs off bizarre Matic injury|
|Gutierrez grateful for reception after beating cancer|
|Pellegrini explains Kompany omission|
|Guardiola underlines respect for beaten Braunschweig|
|Second-half display pleases Wenger as Arsenal maintain top-three place|
|Martinez wants united front at struggling Everton|
|Espanyol 0 Athletic Bilbao 2 (1-3 agg): Basque club into final|
|QPR cannot keep relying on Austin, says Ramsey|
|´No problems whatsoever´ with Gomis|
|Celtic 0 St Johnstone 1: Swanson stunner shocks leaders|
|Tottenham 3 Swansea 2: Spurs bounce back from Wembley loss|
|Liverpool 2 Burnley 0: Sturridge celebrates starting return with goal|
|PSG 2 Monaco 0: Hosts sail into semi-finals|
|Newcastle United 0 Manchester United 1: Last-gasp Young strike gives visitors dramatic win|
|Lazio 1 Napoli 1: Gabbiadini on hand to spare holders´ blushes|
|Manchester City 2 Leicester City 0: Champions bounce back|
|West Ham 0 Chelsea 1: Hazard wins it for the leaders|
|QPR 1 Arsenal 2: Second-half improvement seals victory for Wenger´s men|
|Stoke City 2 Everton 0: Moses and Diouf do the damage for Hughes´ men|
|Bayern Munich 2 Eintracht Braunschweig 0: Holders ease into quarter-finals|
|Gutierrez makes comeback after beating cancer|
|Blatter calls for points deductions to punish racism|
|Evian 1 Lorient 0: N´Sikulu extends hosts´ run|
|Villarreal 1 Barcelona 3 (2-6 agg): Busquets blow sours Copa progression|
|Eredivise Preview: Schreuder issues Twente rallying call, PSV hoping to return to form|
|Barca sweat over Busquets injury|
|Gomis collapses during Tottenham game, Swansea confirm he is ´stable´|
|Ban lifted on Greek Super League action|
|AFC Champions League Review: Zeng injury overshadows Guangzhou win|
|Orlando draw up Walt Disney World link|
|Pearson pragmatic over handling of Premier League ´sideshows´|
|Robertson targeting first-team run|
|Dortmund breathe sigh of relief over Reus injury|
|Bayern can´t be caught, claims Hoffenheim chief|
|Lahm will ´definitely´ end career at Bayern|
|Pele: Brazil should copy Germany for Copa America glory|
|Dynamo hit with partial stadium ban after crowd trouble|
|Dani Alves close to Barca exit - agent|
|Injuries fail to dampen Montella´s Coppa excitement|
|Boateng turned down Barca offer|
|Atalanta replace Colantuono with Reja|
|Pogba to return against Fiorentina, Allegri confirms|
|Don´t make Costa angry, warns Allardyce|
|Pochettino wants end-of-season break for Kane|
|MLS 2015 Preview: Galaxy target defence as new boys welcome marquee signings|
|Debt-riddled Twente cop three-point penalty|
|Gladbach targeting DFB Pokal glory|
|Montreal Impact 1 Pachuca 1 (agg 3-3): Hosts through on away goals|
|Zouma can replace Terry - Mourinho|
|Copa Libertadores Review: Universitario, Libertad notch first wins|
|RB Leipzig´s attack worrying Wolfsburg|
|Jardim backs busy Monaco|
|De Boer: ´I´d only sign for an interesting club´|
|Martinez calls for unity|
|A-League Preview: Phoenix staying grounded|
|Danish FA agree to more pay negotiations|
|Rodgers feared sack before ´radical´ change|
|Chelsea turned Valencia´s head - Allardyce|
|Poyet spat was not a good look - Bruce|
|Gold ´hopeful´ over Reid deal|
|´No problem´ with Bruce, says Poyet|
|Sherwood confident in Villa upturn after derby win|
|Pulis stands by Foster after costly error|
|Boulogne 1 Saint-Etienne 1 (aet, 3-4 on penalties): Minnows´ run ends on penalties|
|Schalke want to buy Nastasic|