The 21-year-old Manchester City star broke German hearts yesterday with a first-half header and sublime strike as Joachim Loew's inexperienced team -- the youngest of the 16 at Euro 2012 -- failed to cope with Cesare Prandelli's street-wise Italians.
A late penalty from Mesut Ozil proved no more than a consolation score for the Germans whose 16-year wait for a major title continues.
Italy are now into Sunday's final in Kiev to face defending champions Spain with the Italians bidding to win their first European crown since 1968. Victory at Warsaw's National Stadium means Italy maintain their impressive record of having never lost to Germany at a World Cup or European Championships on their eighth meeting at a major tournament.
Having dropped three of his forwards for last Friday's 4-2 quarter-final win over Greece, Loew again tinkered with his starting line-up, but this time it back-fired as the Germans lacked an effective Plan B when things went wrong.
Arsenal-bound Lukas Podolski was hauled off at half-time, striker Mario Gomez also made way for 34-year-old veteran Miroslav Klose after the break, while Toni Kroos barely troubled the Italian defence from the right wing.
Germany had a couple of golden chances early on, but the Azzurri soon asserted themselves and after Riccardo Montolivo tested Germany goalkeeper Manuel Neuer, Italy took the lead on 20 minutes.
Antonio Cassano ghosted through two German defenders and crossed for Balotelli to beat his marker Holger Badstuber and slam his header past Neuer.