Last season's beaten semi-finalists Roma offered little attacking threat, leaving them playing catch-up in Group G after the first round of fixtures, having also started slowly in Serie A.
In their first Champions League outing since losing manager Zinedine Zidane and star man Cristiano Ronaldo in the summer, Julen Lopetegui made two big calls in recalling Isco in the forward line and Keylor Navas in goal.
The early signs were ominous for Roma, who required a big early stop from Robin Olsen to keep out Isco from a one-on-one position, shortly after Bale had skimmed the outside of the post with his effort.
Bale sent another couple of shots into the stands, as did Marcelo as Roma continued to give their opponents the freedom of the park, registering 17 attempts in the first half alone.
Roma, who have now lost on five of their last six visits to Spain, were somehow holding on as half time approached after Dani Carvajal headed into the side-netting and Olsen pulled off two more saves.
Sergio Ramos and Isco could not find a way past the Swedish stopper - brought in as a replacement for Alisson Becker over the summer - but the latter curled a delicious free kick into the bottom corner right on the brink of half time.
Normal service was soon resumed in the Spanish capital, though, as Bale came close from inside the box and then struck the woodwork from the latest of his deflected attempts.
A frustrated Eusebio Di Francesco was urging his side to push higher up the field - a task made all the more difficult by Madrid's determination to bag a second goal and put the game to bed.
Another chance was squandered by Luka Modric, denied by Olsen down low, but the Croatian playmaker slotted Bale through just before the hour for that all-important second goal.
Bale drilled the ball out of Olsen's reach for his eighth goal in his last nine outings in the famous white shirt, two of which came in May's final victory over Liverpool.
It had been exhibition football from the reigning champions up until that point, but they took their foot off the gas and Aleksandar Kolarov would have reduced the arrears, if not for a low stop from Navas.
Asensio produced an impressive turn and should have added a third, but his failure to do so mattered little as Diaz came off the bench for his second debut and curled a third into the back of the net.
REAL MADRID (4-3-3): Navas; Carvajal, Varane, Ramos, Marcelo; Modric (Ceballos 85'), Casemiro, Kroos; Isco, Benzema (Asensio 62'), Bale (Mariano 73')
ROMA (4-3-3): Olsen; Florenzi, Manolas, Fazio, Kolarov; N'Zonzi (Schick 69'), De Rossi, Zaniolo (Pellegrini 63'); Under, Dzeko, El Shaarawy (Perotti 63')