Tries in each half from the fit-again Ian Humphreys, along with 10 points from the boot of Ruan Pienaar, brought Ulster a highly valuable four points.
The Scarlets, who can still mathematically reach the play-offs, pushed the home side close and scrambbled for a late losing bonus point courtesy of a converted try from replacement Aaron Shingler.
After some poor tactical kicking from Pienaar and Paddy Wallace, which saw the ball go out on the full on two occasions, Ulster strayed offside just outside their 22 and Stephen Jones slotted an eighth minute penalty.
Pienaar then tried a monster penalty effort from all of 55 metres but was wide of the target. The South African then saw his second penalty attempt from closer in also float away on the wind.
Ulster sprung into life just moments later. An inviting pass from Pienaar saw Humphreys step between Lou Reed and Ben Morgan and then round Rhys Priestland to score by the posts.
Pienaar's conversion made it 7-3 and Ulster were back on track after surviving a fast-paced opening from the Scarlets, who had dominated the exchanges at the breakdown.
Ulster almost extended their lead when Adam D'Arcy put Andrew Trimble into space and it took a last-ditch covering tackle from Ben Morgan to keep the Ireland winger from scoring in the right corner.
Jones then narrowed Ulster's advantage to a point after Simon Danielli was penalised for not rolling away at a ruck.
But, three minutes later, the visitors were punished for the same offence and Pienaar kicked his first successful penalty of the night.
The goal-kicking scrum half then gave Ulster a 13-6 buffer to take into the break, with a superb strike from out on the left touchline after another ruck offence from the Welshmen.
Keen to atone for those errors, the Scarlets hit back seconds just after the restart when excellent centre Jonathan Davies got past both Danielli and D'Arcy to make it over in the right corner.
Full-back Priestland, taking over the kicking duties from the replaced Jones, missed the difficult conversion.
Shortly afterwards, Ulster rode their luck when Morgan Stoddart kicked through and was adjudged by television match official Marshall Kilgore to have knocked the ball on when trying to gather the ball for the touchdown.
The Scarlets, who beat Benetton Treviso last time out, survived the sin-binning of flanker Josh Turnbull coming up to the hour. He was carded for illegal use of the boot.
Then, seemingly from nothing, Humphreys scored his second try. Danielli got Ulster on the front foot with a lovely break out of his own half, prop Tom Court was up in support to make further ground and Pienaar passed to the right for his half-back colleague to stroll over unopposed.
Pienaar duly converted to put the home side 20-11 to the good and leave them on course for another hard-fought victory.
Shingler, who came on for Johnathan Edwards, got on the end of a Pienaar pass and scampered away for a try which Priestland converted.
That cut Ulster's lead to two points and made for a nervy finish, but the home side were able to close it out.
|Ulster Rugby Score Card|
|Scarlets Score Card|