Gareth Southgate suffered his first defeat in charge of England as Lukas Podolski's spectacular second-half winner provided a fitting farewell to his Germany career in Dortmund.
Southgate had been undefeated in four games as interim manager following Sam Allardyce's abrupt departure from the England post after one match - and he will feel this loss in his first match in permanent control was harsh on his side after a creditable performance against the World Cup holders.
Adam Lallana struck a post and Dele Alli saw a shot blocked at point-blank range by Germany keeper Marc-Andre ter Stegen in the first half as England were superior for spells.
It was almost inevitable, however, that former Arsenal striker Podolski, given a hero's reception before, during and after the game, made the decisive contribution with a rising left-foot drive from outside the area after 69 minutes that gave England keeper Joe Hart no chance.
Germany's reshaped side had the same experimental appearance as England's but there was still plenty to satisfy manager Southgate in a losing cause.
The result will hurt because for a large portion of this game England were the more creative, threatening and energetic side.
Southgate, though, will reflect on a three-man defensive system that worked effectively - although it was not put to the test too often by a Germany team who rarely went through the gears.
Burnley's Michael Keane made an assured debut, almost scoring in the opening minutes, and while the attacking system occasionally left Jamie Vardy isolated it did allow Alli and Lallana to flourish and advance into dangerous positions.
England looked effective in possession and nothing that happened here will damage the confidence Southgate is looking to rebuild and put in place after his appointment as permanent successor to Allardyce.
It was a qualified satisfaction because this was nowhere near a full-strength or full throttle Germany.
But Southgate will still have plenty of plus points to take forward into Sunday's World Cup qualifier against Lithuania at Wembley.
BBC Sports