Connacht started like an express train, desperate to dispel a poor record against Ulster that has seen them win just three of their last 26 encounters against their Irish compatriots.
Carty waltzed through under the post after only three minutes for the game's opening score after Connacht had put together multiple phases in the Ulster 22 following a smart break from hooker Dave Heffernan. Carty also added the extras off the tee.
Ulster, who welcomed wing Tommy Bowe back into their starting XV for the first time in six months, sat top of the Guinness PRO12 table with five wins from five before kick-off but the opening exchanges were even.
And the visitors dragged themselves back into contention minutes later as Paddy Jackson slotted over a simple penalty to make the score 7-3.
Pat Lam's champions, who have been hit by a spate of injuries this week, got off and running for the season last time out with a 28-15 defeat of Edinburgh and the win seemed to buoy Connacht as they dominated the opening exchanges against Ulster.
And things got even better for Connacht on 23 minutes as Kelleher finished off a flowing team move to score his side's try of the game, producing a smart sidestep to finish things off. Carty this time struck the woodwork with his conversion in a swirling wind to leave the score at 12-3.
Straight from the restart Connacht strung together multiple phases again, resulting in replacement Connolly powering his way over for his side's third score of the night after missed tackles saw the home side go from one end to the other.
After a difficult start to their PROI2 title defence, Connacht finally seemed to finally find their form of last season and Carty added to the strong start by adding the conversion to make the score 19-3.
Ulster were handed a lifeline on 32 minutes as Conor Carey was sin-binned for side entry from a driving maul as Connacht attempted to fend off heavy pressure from the visitors.
The numerical advantage eventually paid off as Craig Gilroy ran in for a try uncontested score out wide, cashing in on continued Ulster pressure - Jackson missed the resulting conversion.
Carty added a crucial score on 38 minutes to take the score back to 22-8 as he held his nerve to land a much-needed penalty.
Ulster looked a complete different side after the break and scored two quick tries in just a matter of minutes to turn the game on its head.
First hooker Rory Best burrowed his way over from close range, with Jackson adding the extras, before Bowe created a score for stand-in skipper Jared Payne to run in under the posts, with again the Ulster No.10 converting to leave the scores all square at 22-22.
Connacht refused to roll over though and Kelleher scored his second try of the night on 52 minutes to edge his side in front, scoring out wide after another flowing team move.
While Carty, who missed the conversion after Kelleher's score, edged Connacht further in front with a penalty to make the score 30-22 soon after.
Jackson reduced the score to 30-25 with a well struck penalty on 65 minutes, while the Ulster fly-half thought he had darted over for a try minutes later but was penalised for accidental offside.
Ross Kane was sin-binned late in the game for Ulster as their challenge to win the game faltered late on.
Guinness PRO12 Final 2017 Ticket Information: Fans can save up to 20% on selected tickets, and prices start at just €30 adults and €5 child, and be booked via www.ticketmaster.ie. For further information visit http://www.pro12rugby.com/final
|Connacht Rugby Score Card|
|Ulster Rugby Score Card|