In a cagey first half, Kyle Bartley scrambled home Pablo Hernandez’s corner with Adam Hammill’s low drive the best opening the Reds could fashion.
Hernandez doubled the Whites’ lead early in the second half but Charlie Taylor’s own goal set up a nervy final 20 minutes for both sides.
The Reds were the more aggressive in the closing stages but saw Conor Hourihane and Josh Scowen’s efforts cleared off the line by Pontus Jansson in their search for an equaliser.
Adam Armstrong muscled his way past Pontus Jansson and Charlie Taylor before falling to the ground, only for referee Simon Hooper to wave away his appeals for a penalty.
Armstrong had a header blocked by Luke Ayling after excellent work down the right from Josh Scowen before Adam Hammill’s low drive from just outside the area stung the palms of Rob Green.
Andy Yiadom fired just wide with a powerful 25-yard drive on 17 minutes but the Reds almost fell behind moments later.
Adam Davies sliced his clearance and fell the way of Hadi Sacko, but a superb challenge from Angus MacDonald prevented the winger from firing on target.
Ryan Kent’s innovative play was causing problems for the Whites back line and he almost found a breakthrough shortly past the half hour, but fluid football involving him, Hammill and Armstrong proved in vain.
Against the run of play, the hosts opened the scoring on 36 minutes when Pablo Hernandez’s corner was met by Kyle Bartley, who bundled the ball home from close range.
Davies was alert to deal with Hernandez’s swerving effort from 25-yards, ensuring the hosts did not head in at half time with a two goal lead.
Hernandez carved an opening for himself five minutes into the second half, evading the Reds defenders but failing to hit the target and Hammill came close in reply, picking the ball up on the edge of the area but his effort was deflected into the hands of Green.
A moment of hesitancy from Marc Roberts on 53 minutes almost let Chris Wood in, but MacDonald recovered well to prevent the New Zealander firing an effort on goal.
Seconds later though, the hosts did have their second goal of the game as Hernandez escaped from the Reds defenders and sent the ball just out of the reach of Adam Davies.
Wood spurned two further chances from the edge of the area to increase the tally with Roberts showing him into a difficult area and forcing him to fire over the crossbar.
The introduction of Marley Watkins seemed to inspire the Reds and they pulled a goal back 20 minutes from time as Cole Kpekawa’s drilled cross was turned home by a combination of Sam Winnall and Charlie Taylor.
Leeds came close to increasing their lead as substitute Marcus Antonsson drew a fine save from Adam Davies and Kalvin Phillips tested the ‘keeper with a powerful drive from distance moments later.
Tom Bradshaw’s introduction almost produced an equaliser for Conor Hourihane but Jansson was there to clear his volley off the line and was required again moments later.
After another Reds effort had been parried by Green, he turned Scowen’s driven effort away to safety.
The Swedish defender received a caution in stoppage time for kicking the ball away but the Reds were unable to level the score against their Yorkshire rivals as Leeds hung on for all three points.
Leeds: Green (GK), Ayling, Bartley, Jansson, Taylor, Hernandez (Roofe, 84’ ), Phillips, O’Kane, Dallas (Viera, 89’ ), Sacko (Antonsson, 74’ ), Wood.
Subs: Silvestri (GK), Cooper, Mowatt, Coyle.
Reds: Davies, Yiadom, Roberts, MacDonald, Kpekawa, Kent (Bradshaw, 82’ ), Hourihane, Scowen, Hammill, Winnall, Armstrong (Watkins, 65’ ).
Subs: Townsend (GK), White, Lee, A. Jackson, Morsy.
Attendance: 27,350 (2,413 Reds)