|Ulster (17) 20|
|Tries: Gilroy, L Marshall Cons: Jackson 2 Pen: Jackson Drop: Jackson|
|Scarlets (15) 21|
|Tries: Collins 2 Con: A Thomas Pens: A Thomas 3|
Two first-half tries by full-back Michael Collins and some determined defending earned Scarlets an important Pro12 win away to Ulster.
Collins scored the opening try in the fifth minute but Ulster hit back to lead 10-8, with winger Craig Gilroy carving out a superb individual score.
Luke Marshall touched down in the corner for a second try, which gave Ulster a 17-15 lead at the interval.
But two Aled Thomas penalties secured victory for the visitors.
The hard-earned victory saw Wayne Pivac's men move up to third while Ulster, who began the weekend at the top, slip back to fourth after claiming a losing bonus point and falling to only their second home league loss this season.
The Welsh side are now level on points with Leinster, and two behind leaders Connacht.
The opening exchanges looked ominous for Ulster as they conceded the opening try inside the first five minutes.
A loose pass by Darren Cave proved costly and the home defence was caught outnumbered as Collins got through to score.
Thomas missed the conversion but soon added a penalty to stretch the visitors' lead.
Paddy Jackson, leading Ulster for the first time, put the hosts on the board with a drop goal.
Then home winger Gilroy scored a sparkling try, running from deep in his own half and gathering his own kick ahead. Jackson's conversion made it 10-8.
However, Scarlets regained the lead when Ulster's defence found themselves sucked in, giving their opponents the numbers out wide for Collins to dot down his second.
The game's momentum continued to see-saw as Ulster bagged a 17-15 interval advantage - centre Luke Marshall just managing to touch down in the corner. After video confirmation, Jackson landed a fine touchline conversion.
But Scarlets took a 21-17 lead through two Thomas penalties, the second following a yellow card for Ulster flanker Chris Henry.
A Jackson penalty set up a close finish but was Ulster's only score of the second half.
Ulster: Olding, Gilroy, Cave, L. Marshall, Stockdale, Jackson, P. Marshall, Warwick, Andrew, Lutton, O'Connor, van der Merwe, Diack, Henry, Wilson.
Replacements: J. Murphy for Andrew (46), McCall for Warwick (46), B. Ross for Lutton (46), Pienaar for P. Marshall (60), Arnold for Cave (60), Browne for O'Connor (26), C. Ross for van der Merwe (71).
Not used: Humphreys.
Sin bin: Henry (48).
Scarlets: Collins, Owen, King, Parkes, van der Merwe, Thomas, A. Davies, John, Myhill, Edwards, Earle, Bulbring, A. Shingler, Boyle, Allen.
Replacements: R. Williams for A. Davies (3), S. Evans for van der Merwe 37, D. Evans for John (47), M. Paulino for Earle (54), Pitman for A. Shingler (54), Elias for Myhill (63), D. Jones for A. Thomas 63.
Not used: R. Jones.
Ref: Ian Davies (Wales).