Stay up to date with the latest news
Subscribe to our telegram channel
Manchestery City and Italy forward Mario Balotelli scored twice on 20 and 36 minutes.
Mesut Ozil pulled one goal back from the penalty spot in the second minute of injury time, but it was too late for Germany to complete a comeback.
Italy and Spain will play in Euro-2012 final, which will take place in Kiev on 1 July 2012.