Shakhtar Donetsk and Bayern Munich were unable to steal the advantage in their Champions League last-16 tie as the first leg ended goalless in Lviv.
Thomas Muller missed two good chances early in the game, but opportunities were difficult to come by for both sides as Shakhtar frustrated Bayern with an impressive defensive display.
Despite being forced to finish the game with 10 men following Xabi Alonso's red card midway through the second half, Bayern were comfortable late on as both sides settled for a draw ahead of the second leg at the Allianz Arena.
Below, Sports Mole rates every performance from the stalemate in Western Ukraine.
SHAKHTAR DONETSK
Goal
Andriy Pyatov: Relieved the pressure on his defence by coming off the line to collect crosses into the box. Comfortably handled everything thrown at him by the visitors. (6/10)
Defence
Darijo Srna: His physical approach got him into trouble on a few occasions, but the captain played a key role in keeping Ribery as quiet as possible. (6/10)
Olexandr Kucher: Made a number of vital clearances in the first half as Bayern started confidently, and never looked troubled by the visitors. (6/10)
Yaroslav Rakitskiy: Shakhtar's best defender. He kept Muller quiet with some fine marking and led the defence impressively. (7/10)
Vyacheslav Shevchuk: Found it difficult to cope with Robben early on, but recovered well to play his part in a solid defensive display. (5/10)
Midfield
Fernando: One of the standout players in a fairly uneventful match. Broke up play well when Bayern attacked and provided an important shield for the Shakhtar defence. (7/10)
Fred: Joined Fernando in limiting the space on offer to Bayern in midfield, and was an energetic performer for the hosts throughout. (6/10)
Douglas Costa: Curbed his attacking instincts for long spells to help out his teammates at the back, but he struggled to make an impact at the other end. (6/10)
Alex Teixeira: Forced to do much of his work in defensive areas, and he found supporting his full-backs difficult. Unable to get on the ball regularly in the final third. (5/10)
Taison: A rare threat to the Bayern defence with his confident approach on the break, but a lack of support prevented him from finding a breakthrough. (6/10)
Attack
Luiz Adriano: Scored nine goals in the group stages, but didn't get a chance to add to his tally as Shakhtar failed to provide the right service for the Brazilian forward. (4/10)
Substitutes
Marlos: Replaced Costa and followed his teammate's example by putting in a good shift at both ends of the pitch. (6/10)
Wellington Nem: Showed a couple of nice touches in a late cameo, but couldn't get involved in attacking areas as Shakhtar settled for the draw. (5/10)
Olexandr Gladkiy: The forward barely had a kick of the ball after replacing Adriano with just a few minutes remaining. (4/10)
BAYERN MUNICH
Goal
Manuel Neuer: As usual he was prepared to collect the ball from his defenders, but he barely made a save on an uneventful evening for the World Cup winner. (6/10)
Defence
Rafinha: Troubled by Taison when Shakhtar did get forward, but offered a good option for his side at the other end of the pitch. (6/10)
Jerome Boateng: Stepped into midfield regularly in an attempt to apply more pressure on the hosts. Lucky not to be punished when clashing with Srna in the first half. (6/10)
David Alaba: A typically energetic display from the Austrian. Made a number of vital tackles to break up Shakhtar's rare attacks, and he filled a hole in midfield following Alonso's dismissal. (7/10)
Juan Bernat: Much like Rafinha, the Spaniard was allowed to get forward as often as possible, but his final delivery was poor on too many occasions. (5/10)
Midfield
Xabi Alonso: Comfortable in possession as always, but showed a lack of discipline by taking too many risks after being booked in the first half. He could have no arguments with the red card. (5/10)
Bastian Schweinsteiger: Active at both ends of the pitch as he looked to drive his side forward. Missed a decent chance in the second minute when he volleyed wide, but one of the better players on the pitch. (6/10)
Mario Gotze: Struggled to get on the ball in the areas where he thrives, and he drifted in and out of the game before eventually being removed in the 75th minute. (5/10)
Franck Ribery: Often too interested in clashing with Shakhtar players, and his frustration was clear as the home side often used two players to limit the space on offer. (5/10)
Arjen Robben: Started impressively by troubling the Shakhtar defence with his direct running and clever passing in the final third, but the hosts paid closer attention to the Dutchman as the game progressed. Unable to make the impact he usually does in attacking areas. (6/10)
Attack
Thomas Muller: A difficult evening for the German forward. Missed two good chances early in the game, and gifted possession back to the home side regularly in a below-par performance. (4/10)
Substitutes
Holger Badstuber: Produced a solid display in defence in the closing stages as Pep Guardiola looked to fill a gap following Alonso's red card. (6/10)
Robert Lewandowski: A surprise omission from the starting lineup, and he was unable to get involved in the closing stages after replacing Gotze. (5/10)