Los Blancos took a deserved lead shortly before the interval through a sublime Isco free kick, added to on the hour by Bale's drilled finish into the bottom corner.
Diaz rounded off the scoring in added time by marking his second debut for the club with a curler out of Robin Olsen's reach.
Relive how the 90 minutes of action unfolded with Sports Mole's live text coverage below.
STARTING XI: Navas; Carvajal, Varane, Ramos, Marcelo; Modric, Casemiro, Kroos; Isco, Benzema, Bale
SUBS: Courtois, Nacho, Mariano, Lucas Vazquez, Llorente, Asensio, Ceballos
STARTING XI: Olsen; Florenzi, Manolas, Fazio, Kolarov; N'Zonzi, De Rossi, Zaniolo; Under, Dzeko, El Shaarawy
SUBS: Mirante, Cristante, Pellegrini, Perotti, Schick, Marcano, Santon
Julen Lopetegui: "Last season, Roma knocked out Atletico Madrid in the group stages and then Barcelona in the quarter-finals, we should not underestimate them under any circumstances. That season they were semi-finalists but now I believe they have made improvements and are a stronger team - now they have more depth with the same coaching staff. It is important to have that continuity in terms of the coach and his staff because then there will be clearer ideas of playing and they will be further down that road."
Eusebio Di Francesco: "Real will continue to win a lot, they aren't known as Real Ronaldo. In Italy, as in Spain, judgements are made too quickly and Marco Asensio is a player I like very much, he's the future of Real Madrid. He can be very good for the team and he expresses himself in matches at a very high level. Nobody would have asked us last year whether we thought we could achieve what we did. After what has been done, the expectations increase accordingly. We have to improve our performance as a result, as we did something extraordinary and that's what we're trying to repeat."
REAL MADRID SUBS: Courtois, Nacho, Mariano, Lucas Vazquez, Llorente, Asensio, Ceballos
ROMA SUBS: Mirante, Cristante, Pellegrini, Perotti, Schick, Marcano, Santon