|Connacht (22) 30|
|Tries: Carty, Kelleher 2, Connolly Cons: Carty 2 Pens: Carty 2|
|Ulster (8) 25|
|Tries: Gilroy, Best, Payne Cons: Jackson 2 Pens: Jackson 2|
Pro12 leaders Ulster surrendered their 100% record as champions Connacht ran out deserved winners in Galway.
The visitors were made to pay for poor tackling as fly-half Jack Carty, winger Cian Kelleher and flanker James Connolly scored first-half tries.
Ulster winger Craig Gilroy touched down for the visitors but they trailed 22-8 at the interval.
Tries by hooker Rory Best and full-back Jared Payne brought Ulster level but Kelleher got Connacht's clinching try.
It means back-to-back wins for Pat Lam's men, who had started their title defence with three straight defeats.
Les Kiss and his Ulster players will reflect on some poor defensive work which resulted in them facing that 14-point interval deficit.
They seemed to have the momentum when two quick tries wiped out Connacht's lead within six minutes of the restart, but failed to push on.
It was only Connacht's second win in 21 meetings with their Irish provincial rivals.
The westerners started much stronger and Carty got through virtually unopposed for the opening try inside three minutes.
A Paddy Jackson penalty pegged it back to 7-3 but tries in the 24th and 26th minutes by Kelleher and Connolly stunned the Pro12 leaders.
Gilroy took Paul Marshall's long pass to get over in the left corner and haul Ulster back into contention before the break.
Ulster re-emerged fired up with a maul causing enough damage for Best to plunge over just two minutes in. Jackson converted for 22-15.
Bowe then scythed through off a quick lineout and fed stand-in skipper Payne for a slick seven-pointer.
Connacht were far from deflated, an overcooked touchfinder from Jackson inviting the hosts forward and Tiernan O'Halloran and Craig Ronaldson combined to release Kelleher for the corner and the bonus-point score.
Carty nailed a long-range penalty on the hour mark with Jackson replying for Ulster.
A crossing infringement by replacement Brett Herron prevented the Ireland fly-half Jackson from registering a a potentially match-winning try.
However, replacement prop Ross Kane's shoulder charge on Ultan Dillane left Ulster down to 14 men for the final five minutes and their provincial rivals deservedly held on.
Connacht: O'Halloran, Adeolokun, Aki, Ronaldson, Kelleher, Carty, Blade, Bealham, Heffernan, Carey, Dillane, Browne, E. McKeon, Heenan, Muldoon, Connolly.
Replacements: Ili for Aki (64), O'Leary for Carty (70), Loughney for Bealham (61), Delahunt for Heffernan (73), Stevenson for Browne (68), Connolly for E. McKeon (9), J. Cooney for Connolly (41).
Not used: Kerins.
Sin bin: Carey (33).
Ulster: Payne, Bowe, Ludik, Cave, Gilroy, Jackson, P. Marshall, Black, R. Best, Ah You, Diack, Browne, Henderson, C. Ross, Wilson.
Replacements: Lyttle for Cave (41), Warwick for Black (55), Herring for R. Best (63), Kane for Ah You (57), Treadwell for Browne (63), Reidy for Wilson (56), Herron for Ludik (63).
Not used: Shanahan.
Sin bin: Kane (75).
Ref: Gary Conway (Ireland).