Extending its winless streak against Italy in major tournaments to eight matches, Germany had no answer for Balotelli nor Antonio Cassano's creativity.
In the 20th minute, Balotelli had no trouble getting past Holger Badstuber to head in a pinpoint cross from Cassano. Then in the 36th, the 21-year-old striker received the ball behind the defense and blasted a long shot into the top right corner.
Germany failed to trouble Italy for much of the match, but Mesut Oezil scored on a penalty kick in injury time after Federico Balzaretti was whistled for a handball.
While Italy has won four World Cups, it's only European Championship came in 1968. Like when they won the 1982 and 2006 World Cups, the Azzurri have managed to maintain their focus despite a match-fixing and betting scandal at home.
On a pleasant evening at the National Stadium Warsaw, Cassano set up the opening goal by befuddling Germany defenders Mats Hummels and Jerome Boateng to lift the ball in Balotelli's direction.
The second goal began with a long vertical pass from Riccardo Montolivo, whose mother is German. Balotelli collected the pass with his back to the goal, controlled the ball with his chest and then sprinted forward and unleashed a blazing shot from the edge of the area as Germany goalkeeper Manuel Neuer again stood immobile.
Balotelli took off his jersey after his second goal, which drew an automatic yellow card, although he will not miss the final.
Even before scoring, Italy controlled the pace of the match, although Germany did have several chances from Hummels, Toni Kroos and Oezil.
With Germany appearing slightly more organized, captain Philipp Lahm had a great look at the goal in the 49th but shot way over the bar.
Buffon made another impressive save in the 62nd, leaping to push a free kick from Reus off the bar.
While Italy largely sat back and protected its lead in the second half, the Azzurri did produce some dangerous counterattacks. Claudio Marchisio shot just wide in the 67th and 75th and substitute Antonio Di Natale missed another chance in the 82nd.
Di Natale came on in the 70th after Balotelli went down with a cramp to his left leg.
White-clad German fans greatly outnumbered Italian supporters, unveiling a huge banner before kickoff that featured a giant "G'' for Germany. However, most of the stadium was filled with Polish fans who supported Italy.
They had plenty to cheer about.
Copyright 2012 The Associated Press.