Scarlets moved above Ulster in the RaboDirect PRO12 table after edging their visitors 24-17 on Saturday.
In a very tight affair, the home side managed to hold on to the first half lead they had built up, to leapfrog their Irish counterparts in the table.
It was the visitors who started the better here, as they took a three point lead from an Ian Humphreys penalty early on. That was the only score of the opening quarter of the contest though, as both teams failed to build up any real momentum, Ulster squandering good chances.
Things did pick up for the remainder of the first half, as Scarlets pushed for points, levelling up the scores with a penalty on twenty minutes from Aled Thomas.
The home side then took the lead after half an hour, Thomas again on target, after an Ulster handling error.
Scarlets then hit Ulster with a sucker punch, Williams going over for a try just before the half time whistle, converted by Thomas, to leave the visitors in trouble at the break.
The second period again started slowly, before coming to life with an Ulster penalty from Humphreys.
Aled Thomas responded for Scarlets with his third penalty, before Humphries added another placed kick to leave a try between them yet again. Indeed, that try came for Ulster midway through the half, when Andrew Trimble dived over for them. Humphreys missed the conversion, but there was now only two between them, setting up a grandstand finish.
The home side responded almost immediately though, when centre Adam Warren went over for a try,
Ulster now needed a converted try, and fast. That never came though, and substitute fly-half Daniel Newtown kicked a penalty for Scarlets to make sure of the points. Ulster kicked one further penalty, but it was too late, as the Welsh side took the points.
Tries: Williams, Warren
Pen: Thomas 3, Newton
Pen: Humphreys 4
Scarlets: 15 Daniel Evans, 14 Liam Williams, 13 Sean Lamont, 12 Adam Warren, 11 Andy Fenby, 10 Aled Thomas, 9 Rhodri Williams, 8 Ben Morgan, 7 Johnathan Edwards, 6 Rob McCusker (capt), 5 Damian Welch, 4 Dominic Day, 3 Rhys Thomas, 2 Ken Owens, 1 Rhodri Jones.
Replacements: 16 Matthew Rees, 17 Phil John, 18 Simon Gardiner, 19 Aaron Shingler, 20 Richie Pugh, 21 Tavis Knoyle, 22 Daniel Newton, 23 Scott Williams.
Ulster: 15 Simon Danielli, 14 Andrew Trimble, 13 Nevin Spence, 12 Paddy Wallace, 11 Craig Gilroy, 10 Ian Humphreys, 9 Ruan Pienaar, 8 Chris Henry, 7 Mike McComish, 6 Pedrie Wannenburg, 5 Dan Tuohy, 4 Johann Muller (capt), 3 Declan Fitzpatrick, 2 Andi Kyriacou, 1 Tom Court.
Replacements: 16 Nigel Brady, 17 Paddy McAllister, 18 Adam Macklin, 19 Lewis Stevenson, 20 Robbie Diack, 21 Paul Marshall, 22 Darren Cave, 23 Adam D'Arcy.
Referee: Alan Falzone (Italy)
Assistant referees: Gwyn Morris (Wales), Rhys Thomas (Wales)