- Álvaro Djaló (63')
- Rodrygo (16')
- Jude Bellingham (61')
It was an affair that won't live long the memory on a cold rainy day in northern Portugal in which the Spanish giants dominated from the start and opened the scoring in the 16th minute with a close-range strike by Rodrygo.
Jet-heeled Vinícius Júnior flew up the left wing and put the ball on a plate for his fellow Brazilian to tap in with a sliding first touch from inside the six-yard box.
Wasteful Madrid missed several chances to extend their lead mainly through Vinícius, who was often caught offside playing on the shoulder of an extremely high Braga defensive line.
But they managed to score again in the 61st when Rodrygo beat the offside trap and found Vinicius ghosting behind the defence on the left.
He collected the through ball and passed to Bellingham who, from the edge of the box, slotted an effortless curling strike just inside the far post.
It was Bellingham's 10th goal in 11 games in all competitions this season as he became only the second Real Madrid player to score in each of his first three Champions League games after Christian Karembeu in 1998.
Braga did pull one back when Álvaro Djaló took advantage of a defensive mistake in the 63rd to score in the area, but Madrid held on despite late pressure for their third win in three games thanks to two brilliant save by Kepa Arrizabalaga.
"We had to suffer more than expected in the end but it's normal to suffer away from home, especially in the Champions League," Vinicius told Movistar Plus. "The important thing is that we won. We played well, although it's true that we could have scored more goals.
"The summary is that we won all three group games so far. Let's keep this run going."
Carlo Ancelotti's side is top on nine points ahead of Napoli, who eked out a 1-0 win at bottom side Union Berlin with the Germans yet to earn a point. Braga are in third place on three points.
- Michael Oliver