Italy defeated Germany 1-0 in their final European Under-21 Championship group-stage fixture, but both teams progressed from Group C due to Czech Republic's defeat to Denmark.
Federico Bernardeschi's strike was enough for the Azzuri youngsters to win the clash in Poland and set up a last-four clash with Spain.
The Fiorentina attacker poked home from inside the box after Italy took advantage of sloppy Germany passing to win the ball deep in opposition territory.
However, Germany still made it through to the semis to face England as Denmark defeated Czech Republic 4-2, with Kenneth Zahore scoring twice.
Both European semi-finals will be held on Tuesday, with England taking on Germany in Tychy before Krakow hosts Spain against Italy ahead of Friday's final.