Joachim Low’s youthful side overpowered Mexico as Leon Goretzka’s early brace and second-half strikes from Timo Werner and Amin Younes sealed a place in Sunday’s final with Chile in St Petersburg.
Marco Fabian scored a fantastic late consolation goal for Mexico to briefly make it 3-1, but the world champions were too good.
Germany started the match on the front foot and needed only six minutes to take the lead after they counter-attacked to devastating effect.
A loose header from Hector Moreno was picked up by Goretzka, who instantly found the over-lapping full-back Benjamin Henrichs on the right wing. He returned the ball to the on-rushing Schalke midfielder to sweep into the bottom corner from 20 yards.
Germany did not waste any time in doubling their advantage, with the 22-year-old striking again two minutes later when he latched on to a Werner through-ball before sliding a composed finish past Guillermo Ochoa and into the far corner.
Werner should have done better when he was one-on-one with the Malaga keeper, while former Tottenham forward Giovani dos Santos went close on two occasions at the other end as Mexico eventually threatened.
Javier Hernandez somehow scooped the ball over from six yards as they maintained their pressure on the German defence.
Goalkeeper Marc-Andre ter Stegen then had to tip Hector Herrera’s free-kick over the bar to keep Mexico at bay before the break.
After the restart Raul Jimenez fired straight at Ter Stegen following a quick counter-attack, with Werner dragging his effort wide from a tight angle at the other end.
Germany captain Julian Draxler worked Ochoa with a free-kick before Germany moved further ahead in the 59th minute.
A flowing move from right to left resulted in Goretzka laying off the ball to Draxler, who threaded a pass to Jonas Hector and his cutback to Werner left the Leipzig man with a tap in for his third goal of the tournament.
Ter Stegen produced a great save to deny former Watford midfielder Miguel Layun before Jimenez went one closer by hitting the bar with a looping header, with Barcelona keeper stranded.
Ter Stegen was finally beaten when Fabian fired in a wonder strike from 30 yards to reduce the deficit with one minute remaining, but Younes popped up with Germany’s fourth goal with a neat finish in added time.