
Xabi Alonso’s Spanish giants mostly outplayed their visitors but could not extend their lead after England international Bellingham netted from close range in the second half.
Italian giants Juventus, now without a win in seven games across all competitions, fought hard but failed to find an equaliser at the Santiago Bernabeu.
Madrid’s solid win was ideal preparation for Sunday’s Clasico against rivals Barcelona in La Liga and left them as one of five sides to win all three of their opening league phase matches, including holders Paris St-Germain.
“I’m very happy with the win, it was a very tough game with chances at both ends and we had to sweat for it, but it was an important win against a big team,” Madrid goalkeeper Thibaut Courtois told Movistar, after making his 300th appearance for the club.
“They are Juve, not a small side, and when they defend with 11 men and want to go on the counter, it’s not easy.”
Both teams tried to figure each other out in a tentative opening period, but slowly Alonso’s team began to take control.
Brahim Diaz flicked the ball to in-form French superstar Kylian Mbappe, whose shot was tipped away by Michele Di Gregorio.
The striker produced a superb dribble from the right to break into the box and then cut the ball back to Eder Militao on the edge of the box, who whistled a shot narrowly over.
That was as close as either side came in the first half but the game opened up after the interval.
Courtois made a fine save with his leg to deny Dusan Vlahovic at the end of a rapid break downfield.
Madrid took the lead after some fine work by Vinicius Junior, yet to score in the Champions League this season.
The Brazilian was surrounded by defenders in the area but managed to work some space for a shot, which he curled against the post.
Attacking midfielder Bellingham showed his poacher’s instinct to react quickest and turn home the rebound after 57 minutes.
It was the 22-year-old’s first goal of the season in his seventh match, after a slow start to the campaign following shoulder surgery in the summer to fix a long-term problem.
‘Best way possible’
Mbappe, who had scored in his previous 11 matches for club and country, slipped as he shot and Di Gregorio was able to save his low strike as Madrid sought a second.
The Italian stopper made a stunning double save from Mbappe and Diaz to give his team a chance of snatching a draw.
Juventus forged one golden chance but Raul Asencio slid in to block Lois Openda’s shot as the clock ticked down.
Mbappe had one more effort from distance saved as he tried to preserve his goalscoring streak, but Di Gregorio was equal to it.
Courtois was called into action again in stoppage time to pummel away Filip Kostic’s long-range strike, leaving Igor Tudor’s Juve winless in their first three Champions League matches.
“We’ve started this group phase in the best way possible,” said Madrid midfielder Aurelien Tchouameni.
“We faced a good team that defend well and so for us it’s not so easy, but we were confident we would score.”