Fly-half Jason Tovey scored 18 points as the Dragons secured a richly- deserved fourth league win of the campaign.
Tovey went through the card with a try, two penalties, a drop goal and two conversions, while wing Ashton Hewitt got their other try.
Fergus McFadden booted two penalties for Leinster and converted scrum-half Luke McGrath’s try but the visitors failed to leapfrog Scarlets at the top of the Pro12.
Leinster led for 20 minutes of the first-half but the Dragons could easily have grabbed a try bonus point in that space of time given the pressure they had on the visitors.
As it was, in the driving rain, the Welsh region went in 17-10 ahead after Hewitt, who had a storming opening period, put the Dragons ahead after he dashed past McFadden and prop Michael Bent to the line.
Tovey converted the try and McFadden soon reduced the arrears with a penalty before McGrath caught the home defence napping as Leinster had their first decent attack inside the home 22.
There was a great snaffle on the floor from the visiting back row before the Leinster scrum-half picked up 20 metres out and dived through a gap to go under the posts, thus making McFadden’s conversion simple.
That was, though, as much as Leinster got before the break as the home region hammered them in their own 22. Yet it took 20 minutes and two ruled-out tries from third match official Tim Haynes before the home side went into the lead again.
Hewitt went over on the right after a Tovey cross-kick but there were hands in a ruck in the build-up for that one to be denied.
Then centre Adam Warren flew through on a loose ball over the Leinster line only for McGrath to get pressure on the ball a split second beforehand.
However, after several attacking line-outs and a yellow card for Leinster flanker Dan Leavy, the defence finally cracked as Tovey was put over by quick hands on the right from props Boris Stankovich, Brok Harris and finally a Rynard Landman overhead.
Tovey converted and added a 20-metre drop goal for their half-time advantage.
Leinster came out fighting after the interval and McFadden secured his second penalty of the night from 25 metres. It was Leinster’ turn to pressurise the home side.
The visitors mirrored the home side’s pressure in the right-hand corner of the pitch and came within inches of a second try but the Dragons defence kept them out and cleared their lines.
And, when Leinster put their hands in a ruck, Tovey booted his first penalty to restore the seven-point advantage.
The Irish side were dealt a blow when McFadden was sin-binned with nine minutes left for a dangerous tackle on Sarel Pretorius when he was on the ground. That sank Leinster and a final Tovey penalty denied the visitors a losing bonus point.
Tries: Hewitt, Tovey. Cons: Tovey 2. Pens: Tovey 2. Drop Goals: Tovey.
Tries: L. McGrath. Cons: McFadden. Pens: McFadden 2.
Meyer, Hewitt, Hughes, Warren, Amos, Tovey, Pretorius, Stankovich, T. Thomas, Harris, Landman, Screech, Crosswell, Cudd, Evans.
C. Davies for Pretorius (71), Price for Stankovich (45), Knight for Harris (66), Benjamin for Crosswell (57).
Kirchner, A. Byrne, Ringrose, Te’o, McFadden, Marsh, L. McGrath, Dooley, Tracy, Bent, Molony, Triggs, D. Ryan, Leavy, Murphy.
Reid for A. Byrne (69), Madigan for Marsh (41), Boss for L. McGrath (64), Loughman for Dooley (64), Strauss for Tracy (41), Beirne for Triggs (64), Timmins for Leavy (69).
Marius Mitrea (Italy).