Goals from Brahim Diaz, Vinicius Junior and Rodrygo put Braga to the sword in a resounding win for the 14-time winners, who have extended their all-time unbeaten home record against sides from Portugal to 11 matches.
Artur Jorge's men should have led early on, but Alvaro Djalo wasted an opportunity from the penalty spot, and the Portuguese side capitulated in the second half.
Braga now find themselves four points adrift of Napoli in second, and have it all to do in their remaining two group games if they want to join Real Madrid in the knockout stages.
Carlo Ancelotti claimed that "there is no drama" after his Real side only drew 0-0 with Rayo Vallecano at the weekend - a game which also saw Jude Bellingham pick up a shoulder injury.
That would see the Real Madrid talisman only start this game on the bench, and the hosts made the worst possible start, conceding a penalty inside the opening five minutes, when Lucas Vazquez tugged Cristian Borja back in the penalty area.
Referee Halil Umut Meler immediately pointed to the spot, meaning Djalo would face Andriy Lunin, who was drafted in at the eleventh hour following an injury to Kepa Arrizabalaga in the warmup.
In the Ukrainian keeper's first appearance since August, he was the hero for Los Blancos, keeping out Djalo's penalty low to his right-hand side, and denying the Portuguese side from taking a dream early lead.
The match then momentarily became the Sikou Niakate show, as he was almost culpable of conceding a penalty at the other end, as the Malian defender collided with Rodrygo in the area, but the referee waved away any complaints from the attacker.
Up at the other end, Niakate then almost belatedly fired the visitors ahead, but he headed over the bar and ended up clashing heads with Federico Valverde, but both players were okay to continue.
The Braga central defender was then heavily involved again just moments later, conceding possession in his own final third, but as he attempted to recover, he was fouled by Vinicius and referee Meler blew for a foul as Brahim slotted past Matheus, disallowing the goal.
Having already conceded one penalty, Vazquez opted not to tone down his aggressive nature and almost gave another one away after conceding possession to Bruma, who then beat Antonio Rudiger, and even though the right-back clashed with the winger, there was nothing doing from the Turkish official.
After surviving a few minor scares, Real eventually broke the deadlock shortly before the half-hour mark, with Ferland Mendy feeding Rodrygo down the left, the forward then squared for Diaz, who fired into the roof of the net beyond Matheus.
Once the scoring was opened, the hosts never looked back and completely dominated proceedings.
Early in the second half, Vinicius was involved again, setting up Brahim, but despite having two bites of the cherry, he was denied firstly by Matheus and then by Jose Fonte.
That was only a sign of what was to come though, as Real got their second goal three minutes later, and it was a deserved goal for Vini after an excellent opening hour.
Great movement from all of Real's attackers allowed them to open Braga up, before Vazquez found Vinicius in the area and Matheus was beaten once more.
It did not take long for Ancelotti's side to get their third either, and Vinicius was involved again, turning provider, playing a fine one-two with Rodrygo in a swift counter-attack from the hosts, and the goalscorer showed superb close control before an exquisite lob over his Brazilian compatriot in goal.
Rodrygo nearly bagged his brace soon after, as more poor defending from the visitors saw them fail to clear, and after only scoring his third goal of the season minutes earlier, he will have been disappointed not to claim another, firing into the side netting.
Eventually, the game slipped into a bit of lul in the final 25 minutes, with Real comfortably seeing the game out, also becoming the first side to stop Braga from scoring this season in 20 matches.
With Real safely through, they only need a point against Napoli on matchday five in three weeks' time to secure top spot in Group C.
Ancelotti's men will be hoping they can wrestle back first-place off Girona in La Liga too at the weekend when they welcome Valencia to the Bernabeu.
Braga meanwhile, remain on three points, and need a huge turnaround in the final two fixtures if they are going to make the last 16, with a spot in the Europa League now most likely.
Jorge's side host Union Berlin next in the group, after the German club got off the mark with a draw in Naples earlier today.