A first half of relatively few chances saw the woodwork struck and the ball in the net, though neither chance was ultimately rewarded. Dani Olmo’s fierce shot was tipped onto the bar and away, while Antonio Rudiger’s header was ruled out for offside.
The game opened up more second half and substitute Alvaro Morata flicked in the all-important first goal, before Germany scored their first open play effort of the finals to salvage a point thanks to Niclas Fullkrug’s absolute thunderbolt.
It leaves Spain top of their quartet on four points, with Germany bottom on only one and needing a big slice of fortune on the final matchday to make it through, starting with a first victory in Qatar.
Here are the player ratings from the Group E clash.
Unai Simon, 5. Fortunate two poor passes out didn’t result in a clean shot past him. Very quick off his line more than once to clear but not an assured showing. Easily beaten by Fullkrug’s cannon.
Dani Carvajal, 6. Recalled after illness and was reasonable in a defensive capacity, though didn’t get forward to offer any support in build-up play.
Rodri, 7. Not too troubled by Germany’s attack for most of the match but beaten in the lead-up to the equaliser. Dominant aerially and was positionally sound. A little loose with longer passes but certainly didn’t look out of place in defence.
Aymeric Laporte, 6. Struggled a little more than Rodri did with runners from the second line. Beaten by Germany sub Fullkrug several times on the deck.
Jordi Alba, 7. Assisted the opening goal with a fine low ball into the box and made several bursts from deep without sacrificing his defensive positioning.
Sergio Busquets, 7. Just what we’ve come to expect from him: excellent on the ball, bypassed on the run. Booked for a pull-back.
Gavi, 7. Made a bright start but faded as the first half wore on. Opted to cut back instead of shooting just before the break, from close range. Not his most influential performance but certainly not poor by any stretch.
Pedri, 8. Excellent on the ball in tight spaces, with Germany always looking to press and harass him. Like Gavi, he’s had better games overall but still showed lots of moment of class.
Ferran Torres, 5. Several chances fell his way but the first touch was lacking. First off after an ineffective overall display.
Marco Asensio, 6. Not too involved when centre-forward first half but led the counter in positive fashion when moved to the right. Had one big chance but sent it miles over the bar.
Dani Olmo, 7. Thunderous early shot was tipped onto the crossbar. Only in the game in flashes but always looked capable of fashioning space or chances when he was - a good overall performance and worked hard.
Subs: A Morata 8 (Plenty of fine runs in behind, one tremendous first-time finish), Koke 6, N Williams 6, A Balde n/a
Manuel Neuer, 6. Might be mildly disappointed to concede from such a tight angle at his near post but had already kept his team ahead with some good sprints out to clear through balls and one fine tip onto the bar from Olmo.
Thilo Kehrer, 5. In at right-back but struggled to keep tabs on Spain’s wide players. Booked for a poor challenge. Subbed second half.
Niklas Sule, 6. Much more comfortable back in the centre of defence and a few good recoveries and clearances. Easily outpaced in a footrace when Germany pushed up though and didn’t block Morata’s path to goal for the opener.
Antonio Rudiger, 6. One or two tough moment defensively and then thought he had the opening goal - his header was ruled out for offside.
David Raum, 7. Very aggressive with his challenges and blocks, as he needed to be. Early on he was a good outlet for the team and showed good recovery pace as his team pushed forward and were hit on the break.
Joshua Kimmich, 6. Not the best of outings for the key midfielder. Lost the physical battle and his set-piece delivery was mostly poor throughout. Defensively sound for the most part in fairness.
Leon Goretzka, 6. Back in the side and was a bustling presence going forward but inconsistent in his passing and didn’t get into shooting positions as much as would have been hoped for from him.
Serge Gnabry, 6. Just doesn’t seem to be able to find the consistency at international level. Marginalised in large parts of the match out in the channels and unable to make breaks in behind the defence. A couple of wayward efforts.
Ilkay Gundogan, 5. Moved further forward for this match but didn’t affect matters at all. No surprise when he was subbed off.
Jamal Musiala, 8. Technically an assist as Fullkrug robbed the ball off him in the box to score! Germany’s most inventive player in the final third again, coming in off the channels to try and take on his man or play one-twos. Should have squared when he opted to shoot, though.
Thomas Muller, 4. As anonymous a performance as we’ve seen in a long time from Muller. Led the attacking line in theory, offered nothing in hold-up play, goal threat or as a connector in reality.
Subs: N Fullkrug 8 (A blunderbuss finish to leave Simon well beaten and was non-stop movement to cause defences problems), L Sane 7, L Klostermann 6, J Hofmann n/a, Nico Schlotterbeck n/a