
Waldemar Anton 6/10
(On for Havertz, 90'): Shored things up. Getty Images
Unai Simon 8/10
SPAIN RATINGS. Saved a Kimmich header on 20 mins and comfortable saving Havertz’s chances in the first half. More comfortable saves in the second. Booked for time-wasting as Spain tried to see the gamShow more
Dani Carvajal 6/10
Fouled in a yellow card challenge on 27 mins. Got back to get his foot in and disrupt German attacks. Blocked Havertz as Germany pushed for an equaliser. Became the 11th player to be booked (from 16) Show more
Aymeric Laporte 7/10
Shot low and on target after 22 mins. Floored 10 seconds into the second half by Wirtz. Ball went over his head for Germany’s goal, but played well. EPA
Robin Le Normand 6/10
Got his foot in to block a fifth minute German attack. Booked after 29 mins and taken off as a caution at half time. AFP
Marc Cucurella 7/10
Fired a splendid ball down the line after five minutes. Beaten in the air before Germany’s equaliser. Ball hit his hand after 106 minutes but no penalty – correctly – was given. AFP
Rodri 7/10
His muscle was needed in a scrappy game. Tough against Musiala and he should have been booked for one challenge. Stopped the ball getting to Gundogan in the box on 54 mins. Booked. AFP
Pedri 6/10
Had a shot on target in the first minute, then flipped over in a tackle by Kroos three minutes later. Left the pitch after eight minutes and his leg was heavily bandaged thereafter. AFP
Fabian Ruiz 8/10
Shot over the bar after going for the top corner in an open game after 16 minutes. Lovely touch and skill to take three players out of the game with a 79th minute move. Booked. AFP
Lamine Yamal 7/10
Set up Morata at the start of the second half and Olmo with a perfectly weighted pass after 51 mins for the opener. Getty Images
Alvaro Morata 6/10
Poor movement in the first half, shot over at the start of the second when he was much improved. Involved in the first goal. Brought off as Spain sought, unsuccessfully, to protect their lead. Booked Show more
Nico Williams 6/10
Quick feet allowed him to shoot on target on 35 mins, but he was offside. Closely followed by Rudiger and not as effective as in other games. AP
Dani Olmo 9/10
SPAIN SUBS. (On for Pedri, 8'): Put his side ahead after 51 mins with a beautifully timed run and finish. Pulled back by Kroos when he was clear on goal. Germany struggled to deal with the Spaniard whShow more
Nacho 5/10
(On for Le Normand, 46'): The Saudi-bound player had a tough time against the powerful Fullkrug. Reuters
Ferran Torres 6/10
(On for Yamal, 63'): Booked for pulling back Musiala. Prodded a breakaway attack wide after 120 minutes. AP
Mikel Oyarzabal 6/10
(On for Morata, 80'): Curled a shot from outside the area wide of the far post. EPA
Mikel Merino 8/10
(On for Williams, 80'): Will be remembered for one thing, the winning goal, a perfectly executed header on 118 minutes from the Real Sociedad midfielder. PA
Joselu 6/10
(On for Ruiz, 102'): The Stuttgart-born striker was a late substitute. PA
Manuel Neuer 7/10
GERMANY RATINGS: Couple of solid if routine stops from Pedri and then his replacement Olmo in the first half. Could do little about either goal. AFP
Joshua Kimmich 7/10
Didn't know whether to stick or twist at times as he wanted to get forward but wary of the dangerous Williams. Super knock down for equaliser. Getty Images
Antonio Rudiger 6/10
Battled bravely but looked distraught after he lost Merino and was caught under the ball for the winner. Reuters
Jonathan Tah 6/10
Took a while to settle down on return from suspension but solid enough afterwards. AFP
David Raum 5/10
Should have done more to stop Lamal crossing for the opener. Withdrawn on 57 minutes. AFP
Emre Can 5/10
Put himself about in physical start from Germans but off the pace and subbed at the break. AFP
Toni Kroos 6/10
Glittering career ended in crushing disappointment in his final game before retirement. Getty Images
Ilkay Gundogan 6/10
Couple of searching passes but struggled to make an impact and taken off in reshuffle on 57 minutes. AFP
Jamal Musiala 6/10
Flickered in and out of the game. Some lively runs but not quite the cutting edge of previous games. AFP
Kai Havertz 6/10
Some clever link-up play but blew big moment as he lofted over the bar as his side sought an equaliser. AFP
Leroy Sane 5/10
On the fringes of the game before half-time withdrawal. AFP
Florian Wirtz 7/10
GERMANY SUBS. (On for Sane, 45'): Super finish for vital late leveller and almost had a second in extra time. Getty Images
Robert Andrich 7/10
(On for Can, 45'): Added some bite to German midfield. Reuters
Niclas Fullkrug 7/10
(On for Gundogan, 57'): Gave side a focal point and proved a real handful for Spanish defence. Struck post and drew big save from Simon late in extra time. Then missed late headed chance. Reuters
Maximilian Mittelstadt 6/10
(On for Raum, 57'): Rash defensively but cross led to Wirtz's goal. AP
Thomas Muller 5/10
(On for Tah, 80'): Made little impact. Reuters
Waldemar Anton 6/10
(On for Havertz, 90'): Shored things up. Getty Images
Unai Simon 8/10
SPAIN RATINGS. Saved a Kimmich header on 20 mins and comfortable saving Havertz’s chances in the first half. More comfortable saves in the second. Booked for time-wasting as Spain tried to see the gamShow more
Dani Carvajal 6/10
Fouled in a yellow card challenge on 27 mins. Got back to get his foot in and disrupt German attacks. Blocked Havertz as Germany pushed for an equaliser. Became the 11th player to be booked (from 16) Show more
Aymeric Laporte 7/10
Shot low and on target after 22 mins. Floored 10 seconds into the second half by Wirtz. Ball went over his head for Germany’s goal, but played well. EPA
Robin Le Normand 6/10
Got his foot in to block a fifth minute German attack. Booked after 29 mins and taken off as a caution at half time. AFP
Marc Cucurella 7/10
Fired a splendid ball down the line after five minutes. Beaten in the air before Germany’s equaliser. Ball hit his hand after 106 minutes but no penalty – correctly – was given. AFP
Rodri 7/10
His muscle was needed in a scrappy game. Tough against Musiala and he should have been booked for one challenge. Stopped the ball getting to Gundogan in the box on 54 mins. Booked. AFP
Pedri 6/10
Had a shot on target in the first minute, then flipped over in a tackle by Kroos three minutes later. Left the pitch after eight minutes and his leg was heavily bandaged thereafter. AFP
Fabian Ruiz 8/10
Shot over the bar after going for the top corner in an open game after 16 minutes. Lovely touch and skill to take three players out of the game with a 79th minute move. Booked. AFP
Lamine Yamal 7/10
Set up Morata at the start of the second half and Olmo with a perfectly weighted pass after 51 mins for the opener. Getty Images
Alvaro Morata 6/10
Poor movement in the first half, shot over at the start of the second when he was much improved. Involved in the first goal. Brought off as Spain sought, unsuccessfully, to protect their lead. Booked Show more
Nico Williams 6/10
Quick feet allowed him to shoot on target on 35 mins, but he was offside. Closely followed by Rudiger and not as effective as in other games. AP
Dani Olmo 9/10
SPAIN SUBS. (On for Pedri, 8'): Put his side ahead after 51 mins with a beautifully timed run and finish. Pulled back by Kroos when he was clear on goal. Germany struggled to deal with the Spaniard whShow more
Nacho 5/10
(On for Le Normand, 46'): The Saudi-bound player had a tough time against the powerful Fullkrug. Reuters
Ferran Torres 6/10
(On for Yamal, 63'): Booked for pulling back Musiala. Prodded a breakaway attack wide after 120 minutes. AP
Mikel Oyarzabal 6/10
(On for Morata, 80'): Curled a shot from outside the area wide of the far post. EPA
Mikel Merino 8/10
(On for Williams, 80'): Will be remembered for one thing, the winning goal, a perfectly executed header on 118 minutes from the Real Sociedad midfielder. PA
Joselu 6/10
(On for Ruiz, 102'): The Stuttgart-born striker was a late substitute. PA
Manuel Neuer 7/10
GERMANY RATINGS: Couple of solid if routine stops from Pedri and then his replacement Olmo in the first half. Could do little about either goal. AFP
Joshua Kimmich 7/10
Didn't know whether to stick or twist at times as he wanted to get forward but wary of the dangerous Williams. Super knock down for equaliser. Getty Images
Antonio Rudiger 6/10
Battled bravely but looked distraught after he lost Merino and was caught under the ball for the winner. Reuters
Jonathan Tah 6/10
Took a while to settle down on return from suspension but solid enough afterwards. AFP
David Raum 5/10
Should have done more to stop Lamal crossing for the opener. Withdrawn on 57 minutes. AFP
Emre Can 5/10
Put himself about in physical start from Germans but off the pace and subbed at the break. AFP
Toni Kroos 6/10
Glittering career ended in crushing disappointment in his final game before retirement. Getty Images
Ilkay Gundogan 6/10
Couple of searching passes but struggled to make an impact and taken off in reshuffle on 57 minutes. AFP
Jamal Musiala 6/10
Flickered in and out of the game. Some lively runs but not quite the cutting edge of previous games. AFP
Kai Havertz 6/10
Some clever link-up play but blew big moment as he lofted over the bar as his side sought an equaliser. AFP
Leroy Sane 5/10
On the fringes of the game before half-time withdrawal. AFP
Florian Wirtz 7/10
GERMANY SUBS. (On for Sane, 45'): Super finish for vital late leveller and almost had a second in extra time. Getty Images
Robert Andrich 7/10
(On for Can, 45'): Added some bite to German midfield. Reuters
Niclas Fullkrug 7/10
(On for Gundogan, 57'): Gave side a focal point and proved a real handful for Spanish defence. Struck post and drew big save from Simon late in extra time. Then missed late headed chance. Reuters
Maximilian Mittelstadt 6/10
(On for Raum, 57'): Rash defensively but cross led to Wirtz's goal. AP
Thomas Muller 5/10
(On for Tah, 80'): Made little impact. Reuters