John O'Shea scored an equaliser in the final minute as the Republic of Ireland earned a 1-1 draw against Germany on Tuesday evening.
Germany dominated for long spells in Gelsenkirchen, but failed to secure a comfortable advantage after Toni Kroos broke the deadlock in the second half with a powerful strike from 25 yards.
The world champions would pay for failing to pull away from the visitors as O'Shea volleyed home from close range in stoppage time to claim a point for his side.
Below, Sports Mole takes a look at who impressed for each side.
GERMANY
Goal
Manuel Neuer: The Bayern Munich keeper couldn't have done anything to keep out the equaliser on a night when he was rarely tested by the visitors. (6/10)
Defence
Antonio Rudiger: Looked eager to get forward early in the match, but his influence on the game faded after the break. Solid in defence against James McClean. (6/10)
Mats Hummels: Caught out of position a couple of times late on as Germany attempted to close out the game, and was beaten to the ball by O'Shea for the equaliser. (5/10)
Jerome Boateng: The Bayern Munich defender looked comfortable throughout the game as he kept Robbie Keane and Jonathan Walters quiet. Linked up with the midfielders well as Germany applied the pressure in the second half. (6/10)
Erik Durm: The 22-year-old has struggled in the early stages of his international career, but he was on form tonight at both ends of the pitch. Unlucky to finish the evening on the losing side. (7/10)
Midfield
Matthias Ginter: Low was forced to use him in midfield, but he was unable to have much influence in the most congested area of the pitch. Removed at the break as Germany looked to pile on the pressure. (5/10)
Toni Kroos: Germany's best player on the night by a distance. The Real Madrid midfielder was at the heart of everything the hosts did well as he dictated the tempo with his excellent range of passing. Broke the deadlock with a stunning strike, too. (8/10)
Julian Draxler: Drifted in and out of the game as he looked to make an impact from the left. The Schalke ace looked more threatening in the middle, but will be slightly disappointed with his display. (6/10)
Mario Gotze: The attacking midfielder has come in for criticism since scoring the goal which won the World Cup, and only showed glimpses of what he was capable of tonight. Linked well with Kroos at times, but struggled to get involved more frequently. (6/10)
Karim Bellarabi: Handed just his second start by Joachim Low, and threatened early on with his direct running on the right wing. However, he quickly faded as the match progressed before being taken off in the second half. (5/10)
Attack
Thomas Muller: The Bayern forward is usually so consistent on the international stage, but it was a poor evening for him as he failed to win his personal duel with O'Shea. Forced to drop deeper to get involved, and was less threatening as a result. (5/10)
Substitutes
Lukas Podolski: Introduced at the start of the second half, and almost scored with a strike from distance which David Forde tipped past the post. Wasted another chance by diving under pressure from Marc Wilson in the box. (6/10)
Max Kruse: Unable to get involved in the closing stages as Germany failed to improve after taking the lead. (5/10)
Sebastian Rudy: Sent on to help Kroos in midfield late on, but couldn't prevent the visitors from snatching a point. (5/10)
REPUBLIC OF IRELAND
Goal
David Forde: Kept his team in the game with a string of impressive saves to deny the likes of Gotze and Kroos, and his contribution proved to be vital. (8/10)
Defence
David Meyler: Battled superbly in an unfamiliar role to handle the threat posed by Draxler, and once again proved he is a valuable member of Martin O'Neill's squad. (7/10)
John O'Shea: Brilliant performance from the centre-back on his 100th appearance. Kept Muller quiet at the back, and secured a famous result with a fine finish in the final minute. (8/10)
Marc Wilson: Combined well with O'Shea to ensure Germany did not run away with the match. Looked more uncomfortable when the hosts increased the tempo, but responded impressively. (6/10)
Stephen Ward: Struggled against Bellarabi early in the match, but quickly found his feet to play a key role in an admirable defensive display. (X/10)
Midfield
Glenn Whelan: Predictably dependable in possession during his stay on the pitch before being forced off early in the second half due to injury. (6/10)
Stephen Quinn: The Hull City midfielder put up a good fight against the influential Kroos, but should have got closer to his opposite number for the home side's goal. (6/10)
James McClean: Typically energetic display from the winger as he looked to contribute at both ends of the pitch. However, his final delivery was poor when he did find the space he craved. (6/10)
Aiden McGeady: Asked to play in a central role behind Keane, but found it difficult to make an impact before playing a role in his side's equaliser. (6/10)
Jonathan Walters: Played an important role in his team's defensive efforts as he tracked back excellently to help out Meyler when the hosts sent men forward. (6/10)
Attack
Robbie Keane: In truth, it wasn't an easy night for the veteran forward. Ireland's captain was left isolated for long periods, and he didn't get a chance to trouble Neuer. (5/10)
Substitutes
Jeff Hendrick: Proved to be the perfect replacement for Whelan as he battled away impressively, before finding O'Shea for the equaliser with a superb pass. (6/10)
Darron Gibson: Rarely involved in the latter stages as he became another player who struggled to get close to Kroos. (5/10)
Wes Hoolahan: Delivered the cross which led to the goal in stoppage time, and displayed some clever touches as the visitors searched for a way back into the match. (6/10)