Hooker Tom Stewart scored two tries before Ulster held off a late Connacht fightback to record their seventh win in nine BKT United Rugby Championship matches this season.
Smarting from three straight defeats in all competitions, Ulster led by 16 points at one stage, and it was 22-8 after John Cooney's 71st-minute penalty.
Connacht stormed back thanks to tries from replacements Jarrad Butler and Adam Byrne, the latter scoring deep into added time to make it 22-20.
However, Connacht captain Jack Carty pulled the difficult conversion wide as Ulster claimed a dramatic derby victory at the Sportsground.
A Rob Lyttle try had the visitors leading 5-3 at half-time before Tom Stewart bagged a brace. Caolin Blade hit back on the hour mark, only for Connacht's fightback to fall short.
There was little to separate the sides in the opening exchanges, Carty chasing down Ethan McIlroy after the Ulster winger had intercepted his pass, and it was not until the 29th minute that Dan McFarland's side belatedly broke the deadlock.
Stewart and McIlroy showed quick hands and although Luke Marshall's offload was blocked by Tiernan O'Halloran, Lyttle dribbled the loose ball through and touched it down.
Cooney's missed conversion was followed by Carty's lone penalty as the first half finished 5-3 for the visitors.
It was all Ulster after the restart, though.
Their reliable maul did the damage for 21-year-old hooker Stewart to plunge over and Cooney made it 12-3.
Connacht dug in as Bundee Aki turned over Marty Moore before a scrum move involving McCloskey was well defended.
Crucially, Stewart struck from another close-in drive in the 53rd minute - followed by a crisp Cooney conversion - to widen the gap to 16 points.
Blade showed impressive strength and speed to snipe over from a maul, although Carty badly missed the conversion at 19-8
Having watched Stewart be held up short, former Connacht favourite Cooney landed a penalty which should have sewn up the result.
Instead, the Ulstermen had to endure a nerve-jangling finish. With replacement Greg Jones in the sin bin, they could not prevent Butler from crashing over after Cian Prendergast had a try ruled out for accidental offside.
Connacht then matched Ulster's three-try tally, a brilliant surge downfield ending with Byrne powering over past Lyttle and Stewart Moore, but Carty's kick to draw the teams level from a tight angle faded away to the left.
Scorers:
Connacht Rugby: Tries: Caolin Blade, Jarrad Butler, Adam Byrne. Conversion: Jack Carty. Penalty: Jack Carty.
Ulster Rugby: Tries: Tom Stewart (2), Rob Lyttle. Conversion: John Cooney. Penalty: John Cooney.
Recent Posts
- Springbok Sevens Head Coach Philip Snyman A Happy Man
- Saracens Comprehensively Beat Vodacom Bulls in Investec Champions Cup
- Six-try Northampton Saints Dominante Castres Olympique In Investec Champions Cup
- DHL Stormers Slumped To Defeat Against RC Toulon In Investec Champions Cup
- Blitzboks Cruise Into HSBC Cape Town SVNS Cup Semi-Final With Win Over Argentina
- Late Penalty Denies Scarlets EPCR Challenge Cup Victory Against Aviron Bayonnais
- Hollywoodbets Sharks Win The Battle Of The Yellow Cards Against Exeter Chiefs
- ASM Clermont Auvergne Cruise To Bonus Point Try Against Benetton Rugby
- Blitzboks Open Campaign In Cape Town In Style Against Ireland
- Edinburgh Rugby Battled To Final Seconds In Torrid Conditions Against Gloucester Rugby
- Toyota Cheetahs Committed To EPCR Challenge Cup
- Bullish Bakkies Botha On The Super South African Toulon Love Affair
- Hollywoodbets Sharks’ Resurgence An EPCR Challenge Cup Success Story
- Brave Fightback From Dragons RFC Came Up Short Against Montpellier In EPCR Challenge Cup
- Stade Rochelais Hold On For Win In Investec Champions Cup Against Bath Rugby