After early tries for the hosts by Adam Cuthbertson and Tom Briscoe, added to by Joel Moon, Leeds' lead was only 14-10 at the break, in a scrappy contest.
Winger Matty Dawson made light of an injury to score twice, one converted.
Cuthbertson's second try was improved by Liam Sutcliffe, who added a penalty before a Leigh try for Cory Paterson.
Having scored right on the hooter, Josh Drinkwater, who made only one of his three conversion attempts, missed with the final kick.
On a tough night for goalkickers, in such wet conditions, Rhinos full-back Sutcliffe only landed three of his seven attempts at goal.
Third-placed Leeds, who were without the suspended Stevie Ward and injured Ashton Goulding and Brett Delaney, had the important presence of Danny McGuire back in their ranks, while Keith Galloway and Carl Ablett both returned after injury.
Leigh had to play with 12 men for 20 minutes of the second half, after yellow cards for Antoni Maria and Dayne Weston, both sin-binned for late tackles on McGuire.
Leeds: L Sutcliffe; Briscoe, Watkins, Moon, Hall; McGuire, Burrow; Garbutt, Parcell, Singleton, Ferres, Jones-Buchanan, Cuthbertson.
Replacements: Galloway, Handley, Mullally, Ablett.
Leigh: McNally; Naughton, Brown, Fleming, Dawson; Hampshire, Drinkwater; Acton, Hood, Weston, Vea, Paterson, Burr.
Replacements: Pelissier, Tickle, Maria, Hopkins.
Sin bin: Maria (42), Weston (70).
Attendance: 13,445
Referee: James Child (RFL).
Leeds responded well to last week's defeat at Super League bottom club Widnes by doing enough to beat 11th-placed Leigh at rain-hit Headingley.