Leinster missed the chance to go top of the Pro12 table as they slipped to defeat at Newport Gwent Dragons on a wet night in south Wales.
Fly-half Jason Tovey scored 18 of Dragons’ 23 points in a solid display.
First-half tries for Ashton Hewitt and Tovey, either side of Luke McGrath’s reply for the visitors, gave the hosts a seven-point lead at the break.
Leinster applied second-half pressure to no avail and were denied a losing bonus point by two Tovey penalties.
The win – Dragons’ fourth in the league this season – saw them climb above Zebre into 10th in the table. Leinster, who were without 30 players because of international call-ups, remain second.
Wales were given a boost in the build-up to the Six Nations as full-back option Hallam Amos completed a further 80 minutes, continuing his comeback from a shoulder injury.
Hewitt stepped inside a challenge to cross for the opening try, his fourth in the Pro12, which was converted by Tovey, before Fergus McFadden’s penalty got the visitors on the scoreboard.
McGrath, captaining Leinster for the first time, then burst through a gap to score under the post to give the Dublin side a 15th-minute lead, and Fergus McFadden kicked the extras.
Dragons were then twice denied possible tries by the television match official, before the game swung in their favour when Leinster’s Dan Leavy was sin-binned for foul play.
Tovey took advantage, crossing in the corner after Rynard Landman’s offload down the blindside, and then kicked a drop goal before the break.
In the second half, Leinster rallied, attempting to move above Scarlets at the top of the table.
But Dragons’ defence held firm – aside from one McFadden penalty – before McFadden himself was shown a yellow card and Tovey’s late penalty ensured the visitors left with nothing.
Dragons: Carl Meyer, Ashton Hewitt, Adam Hughes, Adam Warren, Hallam Amos, Jason Tovey, Sarel Pretorius; Boris Stankovich, Thomas Rhys Thomas (c), Brok Harris, Cory Hill, Matthew Screech, Nick Crosswell, Nic Cudd, Rynard Landman.
Replacements: Elliot Dee, Phil Price, Shaun Knight, James Benjamin, Charlie Davies, Geraint Rhys Jones, Nick Scott, Scott Andrews.
Leinster: Zane Kirchner; Adam Byrne, Garry Ringrose, Ben Te’o, Fergus McFadden, Cathal Marsh, Luke McGrath; Peter Dooley, James Tracy, Michael Bent, Ross Molony, Hayden Triggs, Dominic Ryan, Dan Leavy, Jordi Murphy
Replacements: Richardt Strauss, Jeremy Loughman, Oisín Heffernan, Tadhg Beirne, Peadar Timmins, Isaac Boss, Ian Madigan, Noel Reid
Referee: Marius Mitrea (FIR)
Assistant referees: Craig Evans, Sean Brickell (both WRU)
Citing commissioner: Dennis Jones (WRU)
Television match official: Tim Hayes (WRU)