MILAN - Mario Balotelli scored a minute from time as the Nerazzurri came from behind to defeat Juventus and set up a Tim Cup semi-final against Fiorentina.
Inter were behind early on when Diego scored from a free kick. The Bianconeri's lead lasted until the 72nd minute when Lucio slotted in the equaliser.
With time running out Balotelli put his seal on another Nerazzurri comeback with his fourth career goal against Juventus and seventh goal of the season.
Diego gave his under-fire coach Ciro Ferrara something to smile about in the tenth minute when he burst past Cambiasso on the left and created space before firing a low shot under Francesco Toldo.
Balotelli forced a save from Buffon and Maicon sent an angled effort over after one-twoing with Pandev as the Nerazzurri fought for an equaliser, but the visitors created chances to add to their lead and Toldo made amends for his earlier mistake when he kept out a strong long-range shot from Grosso.
On the stroke of half time Inter had a penalty claim waved away by referee Antonio Damato when Felipe Melo blocked Thiago Motta's cross with his right hand.
It was just the kind of decision to jolt the Nerazzurri into action and Mourinho's men made the better start to the second half, but Juve threatened first when Chiellini headed Diego's cross on to the outside of the post.
A change was needed and Mourinho withdrew Cambiasso, introduced Milito and suddenly it was all Inter. The reward came with less than twenty minutes remaining when Sneijder's free kick spun off the wall and Lucio beat Chiellini at the far post to poke home.
Buffon made vital blocks from Milito and Balotelli as the Nerazzurri went all-out for a winner, and with extra time looming the Italian striker stunned the Bianconeri with an unstoppable shot from close-range after Buffon parried away Thiago Motta's 20-yard drive.
Inter 2-1 Juventus (HT: 0-1)
Scorers: Diego 10, Lucio 72, Balotelli 89.
Inter: 1 Toldo; 13 Maicon, 6 Lucio, 23 Materazzi, 39 Santon; 4 Zanetti, 19 Cambiasso (22 Milito 61), 8 Thiago Motta; 10 Sneijder; 45 Balotelli, 27 Pandev (11 Muntari 80).
Subs not used: 12 Julio Cesar, 2 Cordoba, 7 Quaresma, 25 Samuel, 89 Arnautovic.
Coach: José Mourinho.
Juventus: 1 Buffon; 21 Grygera, 5 Cannavaro, 3 Chiellini, 6 Grosso; 22 Sissoko, 4 Melo, 26 Candreva, 29 De Ceglie (27 Paolucci 90+2); 28 Diego, 11 Amauri.
Subs not used: 13 Manninger, 15 Zebina, 32 Yago, 33 Legrottaglie, 39 Marrone, 43 Boniperti.
Coach: Ciro Ferrara.
Referee: Antonio Damato (Barletta).
Booked: Maicon 42, Chiellini 50, Melo 71, Cannavaro 76.