Leipzig were energetic but wasteful early, frequently undoing their good work with poor decision-making in the final third.
The hosts were made to pay early in the second half when Diaz opened the scoring.
Drafted into the side in place of the injured Jude Bellingham, Diaz danced past five Leipzig defenders before curling an inch-perfect shot inside the far post.
The win was Real Madrid’s seventh in seven games this Champions League campaign and puts them in prime position to make it past the last 16 for the fourth straight season.
Real travelled to Saxony without England midfielder Bellingham, who injured his ankle in Saturday’s 4-0 win over Girona.
With first-choice center-backs Antonio Ruediger, David Alaba and Eder Militao ruled out, coach Carlo Ancelotti opted to continue midfielder Aurelien Tchouameni’s stint in central defence.
Despite their injury woes, Real sit five clear in the league and have only lost twice this season in all competitions, both times to derby rivals Atletico Madrid.
Leipzig coach Marco Rose said Tuesday his side were “not afraid” of Real Madrid, having beaten the 14-time European champions 3-2 at the same venue in October 2022.
The hosts thundered out of the blocks and had the ball in the net three minutes in, but the goal was controversially ruled out for offside, with Benjamin Henrichs deemed to be obstructing the goalkeeper.
Leipzig carved out a handful of half-chances but poor control in crucial moments, particularly from striker Benjamin Sesko, let the visitors off the hook.
Other than a trademark long-range effort from Toni Kroos which was gobbled up by Leipzig goalkeeper Peter Gulacsi, Real created a little early.
Their best chance came late in the first half when Vinicius’ looping cross drifted just above the head of an advancing Rodrygo.
Collecting the ball near the sideline just three minutes into the second half, Diaz was fouled but refused to go to the ground, dribbling through the Leipzig defence before unleashing a curling shot past Gulacsi to score.
The goal cranked the home side into gear, with Barcelona youth product Dani Olmo going close to equalising, twice stinging the palms of Madrid’s keeper Andriy Lunin.
Madrid should have had another with 20 minutes remaining after going on the counter, but Vinicius hit the post.
Real host Leipzig in the Spanish capital on March 6.
AFP.