But they had to show a huge amount of defensive steel right at the death. They were put through a series of scrums close to their line in a frantic finish, during which they lost full-back Jared Payne to the sin-bin.
Leinster went close through David Kearney and Sean Cronin, the latter's lunge for the line being ruled out by TMO Jude Quinn, as they lost for the first time in the league since Ulster beat them at Ravenhill in December.
Mark Anscombe's side, winless in their last three matches, exerted plenty of pressure in the first half but Ian Madigan was unerring from the kicking tee as Leinster led 12-8 at the break.
Ruan Pienaar was just as impressive from place-kicks, finishing with 12 points and Henderson's 62nd-minute try gave Ulster a lead they failed to relinquish.
Speaking afterwards, Leinster head coach Joe Schmidt said: "The disappointment will always be internal. We needed to play better, we needed to speed our ball up and we didn't manage to do that.
"To be fair to Ulster, they got off the line really well, they defended really physically and they carried the ball really well.
"They played off some nice quick ruck ball which had us scrambling. And when you're scrambling, you're always liable to be breached somewhere.
"We managed to scramble back off some of those line-breaks, but other ones, they managed to get over the try-line twice."
Eager Ulster were first to threaten with Paddy Jackson using quick lineout ball to unleash Andrew Trimble through the middle with Darren Cave providing support.
Leinster were quick to shut down the space in their 22, although the visitors continued to display good ball retention in advanced positions.
Joe Schmidt's men absorbed the early pressure and took the lead through the boot of Madigan on the quarter hour, following a good carry from Brendan Macken who had Andrew Goodman alongside in the centre after Gordon D'Arcy withdrew through illness.
A wind-backed Madigan made it 6-0 four minutes later from further out, converting a long range penalty after Nick Williams was singled out for a ruck infringement.
Ulster sprung Williams forward in the build-up to the game's opening try, the New Zealander charging onto Dan Tuohy's inviting pass and Jackson then flung it wide for Diack to score in the left corner.
Pienaar was unable to convert and Madigan replied for Leinster in the 26th minute, splitting the posts from outside the 22 after Ulster were pinged at a scrum.
As the pace quickened, good hands from Tuohy seemed to release Craig Gilroy for a jinking run to the try-line, but the lock's offload was correctly ruled forward.
It was another glimpse of Ulster's quality in attack, and their patient approach work and relentless recycling should have led to further points.
Leinster's well-organised defence held them in check until replacement Andrew Conway was caught offside from a kick ahead and Pienaar nailed the resulting penalty.
Ulster's discipline let them down at times and Williams was whistled up for not rolling away quickly enough in injury-time, leading to Madigan's fourth successful penalty of the night.
Increased pressure on the Ulster scrum saw Leinster resume on the front foot with Madigan adding another three-pointer to their total.
Pienaar, with the breeze now behind him, cancelled that kick out with a crisp penalty strike from distance and he gave Ulster further momentum with a surefooted 57th minute kick from the right.
After a defence-dominated third quarter, Ulster began to make headway when putting width on the ball again with Gilroy and Stuart Olding both threatening.
Trimble was brought down just short of the whitewash in the 62nd minute and a quick recycle allowed Pienaar put replacement Henderson over in the right corner.
The South African failed to add the extras and with the Ulster scrum giving way once more, Madigan split the posts to cut the gap to a single point.
Conway coughed up a costly penalty when he tackled Jackson in the air as the young out-half gathered a kick, and Pienaar stepped up to make it 22-18.
Time was not on Leinster's side and having turned down a late kickable penalty, the hosts put their faith in their solid set piece.
It was not enough in the end as despite giving away penalties within scoring range, Ulster, with Rory Best leading by example, defiantly held on for a precious win in Dublin.
LEINSTER SCORERS: I. Madigan (6 penalties)
ULSTER SCORERS: R. Diack (1 try), I. Henderson (1 try), R. Pienaar (4 penalties)
15: Rob Kearney
14: Dave Kearney
13: Brendan Macken (Andrew Conway, 37)
12: Gordon D'Arcy
11: Isa Nacewa
10: Ian Madigan
9: Isaac Boss (John Cooney, 74)
1: Cian Healy
2: Richardt Strauss (Sean Cronin, 58)
3: Mike Ross (Jamie Hagan, 66)
4: Quinn Roux (Leo Cullen, 52)
5: Devin Toner
6: Kevin McLaughlin (Rhys Ruddock, 66)
7: Shane Jennings
8: Jamie Heaslip CAPTAIN
REPLACEMENTS NOT USED: Jack McGrath, Noel Reid.
ULSTER: J Payne, A Trimble, D Cave, S Olding, C Gilroy, P Jackson, R Pienaar; T Court, R Best, R Lutton, J Muller CAPTAIN, D Tuohy, R Diack, C Henry, N Williams.
REPLACEMENTS: R Herring, C Black, K McCall, L Stevenson, I Henderson, R Wilson, P Marshall, P Nelson.
REFEREE: George Clancy (IRFU), ASSISTANT REFEREES: Leo Colgan, David Connolly (both IRFU), 4th OFFICIAL: Brian MacNeice (Leinster Rugby Referees), 5th OFFICIAL: Gary Conway (Leinster Rugby Referees), TMO: Jude Quinn (IRFU).