Here are the ratings for all the players in the match:
Thibaut Courtois – 9: Superman – Made a number of key saves to keep Madrid in the match.
Lucas Vázquez – 3: A poor performance as Stuttgart repeatedly exploited the space behind Lucas. Substituted at half-time.
Dani Carvajal – 5.5: He started the game at centre-back but was quickly moved back to full-back after the half-time break and has thrived in his natural position.
Antonio Rüdiger – 8: He headed in a Luka Modric corner kick in the 83rd minute to make it 2-1.
Ferland Mendy – 6: Solid defensively but never posed a threat going forward.
Chouameni – 7: Like most of his team, he was poor in the first half but was much improved in the second and helped set up the opener with a superb first-time through ball to Rodrigo.
Fede Valverde – 6.5: Started the match as a number eight on the right side of midfield and finished as a number six defensive midfielder, performing best in a deeper position.
Jude Bellingham – 8: Madridistas will be relieved to have Jude back on the pitch. He didn’t lose his form so quickly after returning from injury and was one of the best players on the pitch, needing extra defensive support from his teammates on the left side of midfield.
Rodrigo – 7: Assisted Kylian Mbappe’s opening goal and showed smooth dribbling throughout the game.
Vinicius Junior – 6: It wasn’t the Brazilian’s best game, but he still made three key passes.
Kylian Mbappé – 7: His fifth goal in seven games and his first for Real Madrid in the Champions League.
Replacement:
Luka Modric – 7: He stole the ball from Chouameni in midfield and provided the assist for the opening goal with another perfect corner kick just before the end of the game.
Arda Güler – 6: Had little passing sequences where he was unlucky to be ignored by his teammates despite being in dangerous scoring positions.
Fran Garcia – 6: Another solid cameo, with his energy and dynamism providing a new threat to the Stuttgart defence.
Endrick – 8: Ancelotti called the teenager brave and said he clearly had “guts” and his goal proved it. He scored from about 25 yards out on a three-on-two counter-attack with Vini and Kylian on either side. Having chosen the road less travelled, his confidence was duly rewarded.