Second-half goals from Ilkay Gundogan and Kai Havertz looked to have Germany on their way to victory, but Luke Shaw and Mason Mount levelled the score in a span of five minutes. VAR then awarded England a penalty, which Harry Kane converted to give the home side a brief lead, before Havertz tucked away his second of the night to reach the final scoreline.
Nations League finals spots were off the table for both sides with England already relegated to the competition's second tier and Germany coming into their last matchday sitting third, but the game had added importance for the Three Lions as it marked their final test ahead of the start of the World Cup on Nov. 20.
England's Raheem Sterling had the best chance to score for either side midway through the first half, but after his clever cut-back to get a clear look at goal his tame effort was palmed away by an onrushing Marc-Andre ter Stegen.
Gareth Southgate's side continued to look dangerous on the counter, but there was no end result with Sterling once again firing right at Ter Stegen following his full-field run to get onto Kane's ball into the area.
Gundogan scored Germany's first from the penalty spot early in the second half after Harry Maguire fouled Jamal Musiala in the area and were two up 15 minutes later when Havertz curled a perfect shot in from distance that left Nick Pope no chance.
What seemed unlikely as the clock passed 70 minutes soon became reality, as Shaw and substitute Mount struck in quick succession to get the match back on level terms and bring the home support roaring back to life.
Nico Schlotterbeck's stamp on Jude Bellingham's ankle earned him a yellow card and a chance for England to take the lead from the spot, which Kane did with aplomb to the delight of the Wembley faithful.
However, Pope made a mistake as he spilled a long-range shot back into the path of Havertz to side-foot into the back of the net and end the game 3-3.
Bukayo Saka broke clear on goal in second-half stoppage time with a chance to win it for England only for Ter Stegen to touch his shot past the post.
Flick said he was disappointed to see a 2-0 lead turn into a 3-2 deficit in the space of 13 second-half minutes but focused instead on his own team's late recovery.
"We were quite stable at 2-0, but England brought on a couple of substitutes that made them better offensively," Flick said.
"But we have to look at it positively as well. I said to my players that they showed great courage and never gave up so it was great to come back."
Southgate's side finished bottom of the group with three points behind Germany on seven, Hungary with 10 and Italy, who topped the group on 11 points to reach the Nations League final four.
It is more than 100 years since England last went six competitive games without a victory, but they at least changed the narrative with this stirring comeback against Germany.
Both sides needed a pre-World Cup tonic after poor Nations League campaigns, with England losing 1-0 away to Italy last Friday, the same night Germany lost by the same scoreline at home to Hungary.
The last time the two heavyweights met at Wembley, in last year's Euro 2020 finals, England were riding a wave of euphoria and manager Southgate could do no wrong.
But the mood has turned sour mainly because of a woeful lack of goals -- Kane's last-minute penalty in Germany being their only goal in their previous five Nations League games.