Connacht (5) 12
Tries: Carr, Browne Con: Kealey
Ulster (11) 14
Try: Danielli Pens: Humphreys (2), Schifcofske
Isaac Boss is tackled at the Sportsground in Galway
Ulster held on for a fortunate win in Galway after Connacht fly-half Ian Keatley missed three second-half penalties for the home side.
A Simon Danielli touchdown and two Ian Humphreys penalties helped Ulster lead 11-0 but Fionn Carr scored a superb try for the home side before the break.
Connacht then edged ahead in the second half thanks to Keatley's excellent conversion after an Andrew Browne try.
But Clinton Schifcofske's late penalty was enough to earn Ulster victory.
Although they are adrift at the bottom of the Magners League table, Connacht came into the game gunning for a hat-trick of interprovincial wins at home this season after wins over Leinster and Munster.
Ulster coach Matt Williams raised eyebrows before kick-off when he brought Isaac Boss, Ian Humphreys and Carlo Del Fava into his side, with Boss lining out at full-back.
Humphreys hoofed an early wind-assisted penalty through the posts before his half-back partner Paul Marshall's clever grubber kick set up Danielli's 13th-minute score.
Humphreys missed the conversion but soon landed a superb penalty to nudge Ulster into a 11-0 lead.
But Andrew Farley, in his last home game for Connacht, won turnover ball and Frank Murphy's quick switch sent the fleet-footed Carr over for an unconverted try before the break.
Scrum-half Frank Murphy gobbled up possession and a quick switch sent Carr speeding away down the left wing for his eighth league try.
With Ray Ofisa in rampaging form, Connacht started the second half on the front foot and Keatley used the elements to good effect.
Within 10 minutes, blindside flanker Browne burst over unchallenged for a deserved try after good work by scrum-half Murphy and Troy Nathan.
Keatley added the conversion but for all of Connacht's territorial advantage, they could not close out the game.
After Schifcofske kicked Ulster back in front, just four minutes later, Connacht had enough time and chances to regain control on the scoreboard but the otherwise impressive Keatley with his late penalty chances.
Ulster: I Boss; C Schifcofske, D Cave, I Whitten, S Danielli, I Humphreys, P Marshall; BJ Botha, R Best (c), T Court; E O'Donoghue, C del Fava; S Ferris, C Henry, R Diack.
Replacements: R Dewey for Cave (72), N O'Connor for Humphreys (51), B Young for Court (64), N Brady for Best (80), R Caldwell for Del Fava (51), Nagusa for Whitten (64).
Not used: M McCullough.
Connacht: T Nathan; F Carr, G Duffy, K Matthews, L Bibo; I Keatley, F Murphy; B Wilkinson, S Cronin, R Loughney; M Swift, A Farley; A Browne, R Ofisa, J Muldoon (c).
Replacements: D Gannon for Swift (75), C Rigney for Browne (71).
Not Used: Flavin, McGovern, O'Loughlin, Dunne, Deane.
Referee: A Lewis (Irish RFU)