It was Inter's fourth Cup success in the last seven years and Palermo's third defeat in as many trips to the Cup final.
Samuel Eto'o was the hero for Inter, scoring a brace and taking his season's tally for the club to 37 goals in all competitions, beating his previous best total at Barcelona by one goal.
"In football the important thing is to win and without the victory my record wouldn't have been as sweet," said the Cameroon captain.
For Inter boss Leonardo it was his first trophy as a coach.
"It's a huge satisfaction in an entertaining year, with many changes, for me and for Inter," said the Brazilian.
"Being able to finish the last game of the season with two trophies is fantastic," he added referring to the Club World Cup, won in December under his predecessor Rafael Benitez.
Ezequiel Munoz briefly gave Palermo hope late on, although he was subsequently sent off, before Diego Milito sealed the victory in injury time.
"We had a go but it wasn't enough, the more experienced side won," said Palermo coach Delio Rossi, who was also dismissed in the finale for venting his fury.
Palermo midfielder Giulio Migliaccio added: "We can hold our heads up, we played well but they have great players.
"But we brought 50,000 fans from Palermo and that's also a reason to be proud."
The game got under way despite a Greepeace protest that saw two abseilers hanging from the rafters where they had hung a political banner.
Palermo had the better start as Abel Hernandez fired into the side-netting in the first minute.
Their best chance came on 18 minutes as Javier Pastore and Josip Ilicic played a one-two but the Argentine's touch was too heavy and Inter goalkeeper Julio Cesar came out to smother.
Pastore then shot over but Inter scored from their first attack with a lightning counter-attack after Palermo's Nigerian midfielder Afriyie Acquah lost the ball in midfielder under pressure from Thiago Motta.
The ball broke to Wesley Sneijder who quickly played it inside full-back Mattia Cassani and Eto'o latched onto the ball at pace to slide it past Salvatore Sirigu.
That took the sting out of Palermo and Inter came closer to scoring again before the break when Sneijder fired a free-kick over.
However, the Sicilians were back on the front foot after the restart and substitute Fabrizio Miccoli brought a fine save out of Cesar on the hour mark with a flash header from a right-wing cross.
Dejan Stankovic threw himself in front of a Hernandez shot and Inter also survived a frantic goalmouth scramble after Ilicic's clever backheel put Cassani behind the backline and his cross caused panic in the box.
Hernandez then turned Andrea Ranocchia inside the box but Cristian Chivu got back to make a goal-saving tackle.
But as they pushed forward for an equaliser, Palermo left themselves vulnerable at the back and another ball lost in midfield, when Sneijder robbed Migliaccio, saw the the Dutchman slip in Eto'o again to fire across Sirigu and settle the game 14 minutes from time.
It could have been worse still for the game Sicilians as Sirigu pulled off a diving save to deny the excellent Sneijder four minutes from time.
But two minutes later Munoz was left totally free at the back post to head home Miccoli's corner without an Inter defender within touching distance to set up a grandstand finish.
In a crazy finish, Munoz was wrongly sent off after winning the ball against McDonald Mariga, the referee deeming it a foul, and Eto'o crashed the resulting free-kick against the bar.
Then in injury time Goran Pandev teed up Milito to snatch the third.
What the stars mean:
★ Poor ★ ★ Promising ★★★ Good ★★★★ Very good ★★★★★ Exceptional