Germany had taken the lead through Vanessa Ziegler, only to be pegged back by Ellie Brazil's tap in.
Klara Bühl restored Germany's advantage after the break but Alessia Russo responded immediately to level once more.
Tanja Pawollek then put the Germans ahead for a third time and Ziegler added a fourth to make sure of the win.
Russo grabbed her second but it was too little too late, as England fell just short. Germany will now take on Spain in the final.
There was just one change made on either side, as Lois Joel took the place of Florence Allen in the England side. Germany, on the other hand, opted for Verena Wieder instead of Ziegler in midfield.
The game was open in the early stages and both teams had meaningful attempts on goal. Georgia Stanway's long-range shooting was to the fore within two minutes, as an audacious 40-yard lob forced a good save from the retreating Leonie Doege. Janina Minge responded at the other end for Germany, though Ellie Roebuck made the save.
Despite the attacking intent from both sides, the quality and final ball was lacking. Giulia Gwinn came the closest of any side to opening the scoring in the period of play that followed, only to see her finish from the edge of the area drift just over. There was also an early change for the Germans, as Ziegler replaced Kristin Kögel.
Entertaining end to the first 45
That proved to be an inspired decision from Anouschka Bernhard, as Ziegler opened the scoring moments later. A wonderful, driving run from the midfielder saw her escape the clutches of Stanway and reach the edge of the England area. She took aim and loop a shot over the helpless Roebuck, giving Germany a perhaps deserved lead.
England didn't let their heads drop, however, and levelled also immediately. Niamh Charles created the opening with a really powerful burst down the left-hand side, getting into the box before crossing for Brazil. It appeared that Doege would cut the ball out, although she misjudged and Brazil gleefully tapped into an open goal to restore parity.
Stunning start to the second half
After the game restarted, the tussle picked up exactly where it left off. Bühl grabbed the ball from kick-off and was afforded space and time to run at the England defence. The attacker, who grabbed her first international goals in the first match of the tournament, shifted onto her left and squirmed a shot under Roebuck to restore Germany's lead.
However, once again, England managed to level just as quickly as Germany had scored. Some wonderful work by Russo on the right wing saw her dance around the opposition defence before blasting past Doege at her near post. Question marks could have been raised about the German stopper again, although Russo's skill was quite fantastic.
Germany end strongest to reach the final
Both teams had chances in the aftermath and Bühl rocketed a shot past the far post and Marie Müller volleyed wide from a similar angle. England's best opening came through Brazil who stole a march on her markers before attempting to round Doege, though she made a superb recovering save.
Germany did look like the side more likely to force the fifth goal and that would be the case. A debatable foul on the edge of the area was awarded in favour of the Germans, but there was no doubting the finish from Pawollek. The centre-half stroked home the free-kick on Roebuck's side, with the power proving too much for the young stopper.
Sarai Linder rattled the bar for Germany as their quality eventually proved too much for England. Ziegler, especially, had made a big impact after coming off the bench and another superb driving run and finish saw her fire into the bottom corner and seal the Germans' passage into the final against Spain.
It wasn't an easy ride into the final showdown, however, as Hannah Cain's cross picked out Russo for her second of the game. A flicked header popped the ball into the far corner, but it was too little too late and the English youngsters will now battle it out with Norway for third place and a shot at the under-17 World Cup later this year.