Leinster rose to third in the United Rugby Championship with a narrow victory over dogged Dragons in Newport.
Leinster led 7-0 at half-time thanks to a Max Deegan try and Ross Byrne conversion, but could not capitalise further on two Dragons yellow cards.
Dragons rallied with two Sam Davies penalties as they rattled the Irish province into producing numerous uncharacteristic errors.
The home side could not quite seal what would have been a famous victory.
Despite their endeavours, it was a second successive Dragons defeat this season with the Gwent region having lost their past 12 games against Leinster, who opened their campaign with a 31-3 victory against Bulls.
Dragons hooker Elliot Dee returned from a calf problem, but the region were still without Wales prop Leon Brown, who picked up an injury in the summer while on international duty.
Leinster flanker Josh van der Flier led his side out as he notched up his 100th appearance for them, while wing Rob Russell made his debut.
Centre Conor O'Brien returned for his first appearance since February 2020., while Ireland lock James Ryan captained Leinster for the first time with Johnny Sexton missing.
Leinster dominated early on with Dragons scrum-half Lewis Jones yellow-carded for a professional foul. The visitors took advantage with number eight Max Deegan scoring on his first start in more than a year.
Dragons were reduced to 13 men when full-back Josh Lewis was sin-binned for a deliberate knock-on but did not concede any more points with their numerical disadvantage.
Flanker Ollie Griffiths suffered a head knock and was replaced by Taine Basham as Leinster led 7-0 at half-time.
Leinster brought on Ireland flanker Dan Leavy following another enforced lay-off before Sam Davies slotted over a penalty after the visitors were caught offside.
Davies' half-back partner Rhodri Williams added attacking spark and laid the platform for a second successful penalty to reduce the deficit to one point.
Leinster thought they had sealed victory in the 77th minute when replacement scrum-half Nick McCarthy went over the Dragons line.
But following numerous television replays, it was judged that wing Russell had knocked the ball on in the build-up after an aerial challenge with Lewis.
A frantic finale followed, but Dragons could not break out of their own half to cause a major upset.
Dragons: Josh Lewis; Jonah Holmes, Jack Dixon, Aneurin Owen, Jordan Olowofela; Sam Davies, Lewis Jones; Aki Seiuli, Elliot Dee, Mesake Doge, Ben Carter, Will Rowlands, Ross Moriarty (c), Ollie Griffiths, Aaron Wainwright
Replacements: Taylor Davies, Greg Bateman, Chris Coleman, Joe Maksymiw, Taine Basham, Rhodri Williams, Adam Warren, Ioan Davies.
Leinster: Hugo Keenan; Rob Russell, Garry Ringrose, Conor O'Brien, Rory O'Loughlin; Ross Byrne, Jamison Gibson-Park; Andrew Porter, Dan Sheehan, Michael Ala'alatoa, Ross Molony, James Ryan (c), Rhys Ruddock, Josh van der Flier, Max Deegan
Replacements: James Tracy, Ed Byrne, Cian Healy, Ryan Baird, Dan Leavy, Nick McCarthy, Ciarán Frawley, Scott Penny
Referee: AJ Jacobs (SARU)
Assistants: Aled Evans & Jason Bessant (WRU)
TMO: Sean Brickell (WRU)