Leinster will end the calendar year in second place in the RaboDirect PRO12 after beating Ulster in a hard-edged derby duel at the RDS.
Man-of-the-match Jordi Murphy scored the only try of this festive inter-provincial clash with Jimmy Gopperth landing five of his seven kicks at goal for a 14-point haul.
However, Sean O'Brien dislocated his shoulder in the second half in a setback for both Leinster head coach Matt O'Connor and his Ireland counterpart Joe Schmidt.
O'Connor's men dominated possession and territory in the opening half, with wind-backed Ulster soaking up the pressure until giving way just before the break.
A brace of Paddy Jackson penalties had the visitors ahead when flanker Sean Doyle was sin-binned in the 36th minute, paying the price for a succession of Ulster ruck offences.
Leinster touched down just moments later as Luke Fitzgerald sent number eight Murphy crashing over with Gopperth's classy conversion making it 10-6 at half-time.
Gopperth was the lone scorer in a scrappy second period, notching penalties after 50, 57 and 62 minutes in what was the sides' first meeting since last May's league final in Dublin.
Number eights Murphy and Roger Wilson both infringed in the opening four minutes, allowing Jackson and Gopperth to trade well-struck penalty goals.
Gopperth then drifted a second right-sided penalty wide after Fitzgerald had gained good yardage from a retrieved kick.
There were plenty of full-force collisions as Leinster chipped away at Ulster's committed defence early on, with openside O'Brien an ever-willing carrier.
Gopperth was undone by the difficult kicking conditions again on the quarter hour mark, stabbing a penalty effort from the left across the posts.
Ulster captain Robbie Diack got over a ruck ball to get his side back into opposition territory, and their defence showed its resilience again after Noel Reid raided over halfway.
Another opportunity was lost for Leinster as, after a promising lineout maul, Luke Marshall poached possession at the breakdown and hard-tackling Ulster eventually cleared the danger.
Despite the lion's share of possession, Leinster's frustration continued to grow as Diack forced another penalty at the breakdown and then a side-entry call against Mike Ross allowed Jackson to kick Ulster back in front at 6-3.
But the visitors were made to pay for a sloppy finish to the first period, as Doyle saw yellow for not rolling away and Leinster pounced for a try in the very next phase.
Fitzgerald rescued a loose lineout for the hosts and his inviting offload sent Murphy charging up the left touchline and over in the corner through last-ditch tackles from Andrew Trimble and Ricky Andrew.
Gopperth gave his side a further boost with a tremendous conversion kick from wide out, and Leinster resumed on the front foot with a stiff wind now at their backs.
Gopperth right-footed a 50th minute penalty through the posts for a 13-6 advantage, with Ulster sending on big guns Ruan Pienaar and Jared Payne in response.
The pair immediately made an impact to Ulster's back-line play, lifting the tempo during a promising spell in the hosts' 22.
Leinster soon lost O'Brien to injury but Gopperth was on target again in the 57th minute to put 10 points between the provinces.
Ulster leaked their 11th penalty of the night from a scrum on their 22, with Gopperth mopping up with another three points, and Mark Anscombe's side - on a five-match winning run - failed to respond in an error-strewn climax.
Gilroy was a pass away from setting up a try, but having done the hard work straight from Gopperth's missed touchfinder the winger elected to go it alone and the chance was lost.
Payne also knocked on near the end line as he dived to reach a grubber kick from Jackson, leaving Leinster to celebrate their first win in three outings.