Tough to blame him for both goals and produced some assured goalkeeping otherwise, with a few fine saves thrown in.
Communicated well with Sule, snuffing out danger when it got too close to his goal. Marked Gotze well to boot.
Excellent on his flank, never presenting Bayern with a route forward and making a series of key individual defensive plays.
Gave his side a vital first half lead, but more than that, it was his constant alertness at the back, as he dealt with countless Bayern attacks.
Put in an energetic shift in the middle of the park, helping to break up play on the edge of the box and prevent the opposition from finding a gap.
Pacey and resourceful on the counterattack, giving the likes of Lahm a few things to worry about on occasions.
Defended his flank well and provided one or two excellent moments in attack with some fine balls into the box.
Never quite kept up with Schweinsteiger and Muller. Lost the ball a few times and looked overawed by the opposition.
Performed decently in an attacking midfield role, distributing the ball well, but there was a lack of real panache from him.
Led the line tirelessly for the home side, making sure that Firmino and Volland often had an outlet on the counter. Did not have much opportunity to have a shot on goal, however.
His enterprise on the flank was key for the hosts during their best attacking spells. He was always able to make the defence work with his dribbling or crosses into the area.
Made a complete hash of a corner, fumbling the delivery and allowing Sule the opportunity to stab home the opener.
Looked generally assured as he continues his comeback from injury, and dealt with whatever was thrown his way by the home side.
Marauded down the flanks whenever his side were on the ball, proving a good outlet out wide that helped to keep play stretched.
Drafted back into his natural position of full-back and did not miss a beat. Defended a few Hoffenheim counter attacks with distinction, and supported the attack in his typically effective manner.
Like Dante, he was not often seriously tested, but he took care of the threat from Modeste whenever Hoffenheim tried to pick out the striker.
Completely in control in the centre of the park, breaking up play when needed and more pertinently, providing an effective fulcrum for the attack to reset and recycle possession.
Made his first start in two months and looked like he had never been away. Mopped up play effectively in front of the defence, and was a menace in the box on set pieces to boot.
With Mandzukic drifting to the flanks, he tried to affect play down the middle, but never really got to grips with putting pressure on the centre-backs. Subbed late on.
Given his high standards, it was not his most swashbuckling game. However, he still managed to affect matters with a free-kick that was inadvertently turned in by Mandzukic for the leveler, before flicking Muller into space for the winner.
Drifted out to the flanks frequently, but it was not always the most effective strategy as it deprived his side of a genuine target in the box. Still, he got his name on the scoresheet by deflecting a free-kick home.
Put in a tireless shift, as ever, in the attacking third. Combined well with his team-mates and tried to get on the end of as many chances as he could. And after missing a few chances, he came good by poking home the winner late on.