Connacht put a dent in Ulster's play-off ambitions by holding on for a deserved RaboDirect PRO12 derby victory at the Sportsground.
Miah Nikora and captain Gavin Duffy broke through for Connacht tries in a bruising first half, but young centre Paddy Jackson kicked Ulster into a 16-13 interval lead.
Tiernan O'Halloran struck for his fifth try of the league campaign, only for Jackson to dot down in the 53rd minute and keep the visitors on course.
A Nikora penalty nudged Connacht back in front and there was no stopping them from gaining their first win over Ulster since December 2005.
With their confidence boosted by a recent away win over the Dragons, Connacht started in impressive fashion and out-half Nikora soon put them ahead.
The New Zealander popped over a third-minute penalty to reward his forwards for a good spell of ball retention, with a much-changed Ulster side pinned back early on.
Ian Humphreys snatched at a kickable penalty into the wind, and Connacht stretched their lead to 8-0 with Nikora's nimble try.
Robbie Diack and Adam D'Arcy were caught out by the fast feet of the out-half who found a gap to dart over to the right of the posts.
The try was unconverted and the loss of Brett Wilkinson and Ray Ofisa through injury, coupled with Ronan Loughney's sin-binning for a late challenge on Humphreys, hampered the hosts.
Ireland Under-20 captain Jackson took over the place-kicking duties and drove over two central penalties to get the visitors off the mark in the second quarter.
Connacht hit back on the half-hour as precise passes from Henry Fa'afili and Kyle Tonetti released Duffy down the right wing and he cut in past Stefan Terblanche for a well-taken five-pointer.
But Ulster enjoyed a strong finish coming up to the break with scrum half Paul Marshall diving in for a try after picking from the base of a close-in ruck.
Marshall injured himself in the act of scoring and Ruan Pienaar, Ulster's Heineken Cup hero from last Sunday, was sent on in his place.
Jackson continued his impressive kicking display by landing the conversion and a crisply-struck late penalty to edge Brian McLaughlin's charges ahead.
It was a short-lived lead, however, as just three minutes into the second half a lovely one-handed offload from John Muldoon sent O'Halloran scurrying along the touchline and over in the right corner past Pienaar.
Nikora's pinpoint conversion made it 20-16 to the westerners, but they could not break free of Ulster's grasp with Nevin Spence beginning to threaten in midfield.
The strongly-built centre was held up close to the line before he provided the support to drive Jackson over from a couple of metres out. The try scorer missed the conversion.
Nikora nailed a penalty on the hour mark to make it 23-21 to the westerners and the obvious tension spilled over when Michael Swift and Lewis Stevenson were sin-binned for an off-the-ball scrap.
Connacht had a grip of territory in the closing stages with Muldoon and Mike McCarthy continuing to set the physical tone up front.
Ulster replacement Ali Birch was then yellow carded for hands in the ruck and a final penalty from 16-point hero Nikora clinched the result.