Ola Toivonen made the unthinkable seem possible when he put Sweden ahead with a delicate chip in the first half.
Marco Reus spearheaded the German revival when he levelled early in the second half.
They surged forward but Sweden were stout in resisting them and Germany’s progress was halted late on when Jerome Boateng stupidly saw red.
Even so, they pulled their fading hopes of progression out of the fire when Kroos rocketed in a thunderous set-piece with seconds remaining.
Here are our Germany ratings:
Manuel Neuer – 7:
Clawed away Berg’s header to prevent his side going in 2-0 down at the break. Sturdy even if his defence wasn’t.
Joshua Kimmich – 6:
Constant outlet in attack as Germany poured forward. Crossing in particular a threat, but struggled to shackle Forsberg.
Jerome Boateng – 2:
A few wild hacks from distance seemed desperate, while he struggled to marshal his back line. Red card was inexplicable.
Antonio Rudiger – 4:
Extremely lucky not to give a penalty away for a clear foul on Berg. Matched his colleague alongside him for how poor he was.
Jonas Hector – 5:
Struggled as Sweden countered continuously. Settled down and got forward in support in the second half.
Sebastian Rudy – 5:
The combative Bayern Munich man was bloodied by Forsberg’s boot and forced off in the first half, much to his dismay.
Toni Kroos – 7:
Uncharacteristically gave away possession and then failed to track back for Sweden’s opener. Improved after break and sublime free-kick won it.
Marco Reus – 7:
Lively and creative from the off. Hauled Germany level within minutes of the restart. Still questioning his inclusion over Ozil?
Thomas Muller – 5:
Early tug on Forsberg went unpunished. Otherwise toiled and tussled with several opponents as he failed to affect proceedings.
Julian Draxler – 6:
Bright, especially when linking up with Reus. But spent most of his time on the field going backwards.
Timo Werner – 7:
His pace and energy posed problems, especially when pushed out wide. Cross caused chaos and was swept in by Reus.
Ilkay Gundogan – 6:
Came on early and almost immediately contributed with a goal. Anonymous second half though.
Mario Gomez – 6:
Introduction made a difference as he caused havoc in the centre, with Werner excellent out wide.
Julian Brandt – 7:
Brought on as Germany chased a victory. Unlucky not to be a match-winner as fierce strike cannoned off the post.
Know more about Sport360 Application