Palermo are through to their first Coppa Italia final since 1979 as second-half goals from Giulio Migliaccio and Cesare Bovo saw them edge out AC Milan in the second leg of their semi-final at Stadio Renzo Barbera.
The sides had drawn 2-2 in the first leg at the San Siro and Migliaccio headed the opener on the night after a goalless first half before Milan had Mark van Bommel dismissed for giving away a penalty that Bovo converted.
The hosts were then reduced to 10 men themselves as Bovo saw red for a poor tackle on Alexandre Pato but they held on despite Zlatan Ibrahimovic's late goal to secure the win.
Javier Pastore, a goalscorer in the first leg, had early chances as Palermo started strongly but he headed over the bar from a Mattia Cassani cross before having a shot saved by Christian Abbiati and firing another effort over the bar.
At the other end Andrea Pirlo curled an effort narrowly over the bar and Mathieu Flamini was denied by Salvatore Sirigu's save.
Armin Bacinovic should have put Palermo ahead in first-half stoppage time but blazed over from close range.
The hosts' pressure eventually told in the 64th minute as Josip Ilicic's corner allowed Migliaccio to head home and put Delio Rossi's side 3-2 up on aggregate.
Ibrahimovic saw an audacious backheel go narrowly wide as Milan sought a response but they soon fell further behind as Van Bommel brought down Ilicic as he raced in on goal, with the referee having no hesitation in pointing to the spot and showing the Dutchman a red card.
Bovo coolly slotted the spot-kick into the bottom left corner but was off the field himself two minutes later for a rash kick on Brazil international Pato.
Milan pushed desperately to get a goal back and Ibrahimovic was left exasperated as his close-range show managed to canon off both posts and away to safety,
The Sweden striker did get on the scoresheet in stoppage time but it was too late for the new Serie A champions.