Ulster boosted their chances of a place in the Magners League semi-final play-offs by beating Connacht in a hard-fought Irish derby game at Ravenhill.
Rory Best and Adam D'Arcy scored first-half tries, with Ian Humphreys converting both, while Ian Keatley kicked six points for the visitors.
Keatley and Humphreys traded penalties after the break and Keatley then converted Sean Cronin's touchdown.
Humphreys added a penalty and then converted Darren Cave's late try.
Ruan Pienaar, D'Arcy and Cave all played their part in a flowing move which culminated in Best diving under the posts for Ulster's opening try in the fifth minute, Humphreys converting.
Keatley landed a drop goal four minutes later but was then off-target with a penalty attempt.
After a period of Connacht territorial advantage, Ulster turned defence into attack and Humphreys provided the crucial pass for D'Arcy to sprint over the line in the 31st minute.
Humphreys again converted to give Ulster a 13-point advantage.
A Keatley penalty reduced Connacht's deficit to eight points at the interval.
After half-time another penalty effort by Keatley rebounded off the post but the fly-half made amends by slotting his next attempt between the posts.
Humphreys replied with his first penalty of the game but Sean Cronin showed a fine turn of speed to score a 50th-minute try.
Keatley provided the pass and the Ireland hooker ran a good angle to collect the ball and touch down for his side's only try.
Humphreys's second penalty eased the pressure on Ulster slightly and the in-form fly-half provided the pass for Cave to score a try on his return to action on 75 minutes.
A Humphreys conversion extended the lead but despite some late pressure the home side were unable to conjure up the fourth try which would have secured a potentially crucial bonus point.
The victory moves Ulster up to second place in the league ahead of the weekend's other fixtures.
"I'm very happy with the win but maybe a little disappointed that we didn't manage a bonus point," said Ulster coach Brian McLaughlin after the game.
"Connacht fought tooth and nail so all credit to them."
Ulster: A D'Arcy; C Gilroy, D Cave, N Spence, S Danielli; I Humphreys, R Pienaar; P McAllister, R Best (capt), J Cronin, J Muller, D Tuohy, C Henry, W Faloon, P Wannenburg.
Replacements: B Young for Cronin (55), R Diack for Faloon (68).
Not used: A Kyriacou, A Macklin, T Barker, P Marshall, I Whitten, C Gaston.
Connacht: G Duffy; E Griffin, N Ta'auso, T Nathan, F Carr;, I Keatley; F Murphy; B Wilkinson, S Cronin, J Hagan, M Swift, B Upton, M McCarthy, J O'Connor, J Muldoon
Replacements: A Flavin for Wilkinson (60), R Ah You for Hagan (64), A Browne for McCarthy (78), M McComish for Muldoon (64), T O'Halloran for Ta'auso (32).
Not used: Loughney, Willis, Nikora