Connacht stuck with the team that won in Edinburgh last weekend, although a dislocated thumb sustained in training forced Robbie Henshaw’s late withdrawal.
Ulster welcomed back Jared Payne and Ireland internationals Andrew Trimble, Paddy Jackson and Chris Henry, but the visitors got off to a rocky start.
Kieran Marmion hounded his opposite number Ruan Pienaar into coughing up possession in the Ulster 22, the alert Brian Murphy swept quick ball away to the left and Mike McCarthy passed for number eight George Naoupu to go over unopposed.
Dan Parks was unable to slot the left-sided conversion and Pienaar was wide with a penalty chance to reply, although the Ulster backs soon clicked into gear.
Darren Cave was involved twice in the build-up to Olding’s ninth-minute try, first firing out a skip pass and then combining with Trimble and Payne to put the Ireland U20 international in.
Pienaar converted and as Ulster quickly exploited space down the same right flank, it was the South African’s deft backhanded pass that sent Trimble in to score.
The try was unconverted and Connacht hit back by the end of the first quarter, the backs threading a series of passes out for Tongan Fetu’u Vainikolo to cut in impressively past Trimble and Payne.
Parks and Pienaar traded penalties before Ulster, with their big forwards getting on top, moved back in front ahead of half time.
Stand-in captain Rory Best slipped off an advancing lineout maul to crash over for try number three. Pienaar converted but was just short with a late penalty.
Miah Nikora then slotted a penalty, closing the gap to 22-18 and setting up an evenly contested third quarter.
Connacht’s resilience was further tested by a series of five-metre scrums with John Afoa adding his weight to the Ulster front row.
The hosts held out initially, but their defence was finally unlocked again when replacement Iain Henderson charged past two defenders and popped a one-handed offload away for Bowe to finish off.
Pienaar added the extras and full-back Payne ran in a fine breakaway try six minutes later.
Scorers for Connacht: Tries: Naoupu, Vainikolo. Con: Parks. Pens: Parks, Nikora.
Scorers for Ulster: Tries: Olding, Trimble, Best, Bowe, Payne. Cons: Pienaar 3. Pen: Pienaar.
CONNACHT: Duffy, Poolman, E. Griffin, B. Murphy, Vainikolo, Parks, Marmion, Wilkinson, Flavin, Loughney, Swift, McCarthy, Kearney, Muldoon, Naoupu.
Replacements: Healy for Vainikolo (75), Nikora for Parks (44), O’Donohoe for Marmion (70), Ah You for Wilkinson (55), Reynecke for Flavin (55), Fifita for McCarthy (75), Browne for Kearney (62).
ULSTER: Payne, Trimble, Cave, Olding, Bowe, Jackson, Pienaar, Court, Best, Lutton, Stevenson, Tuohy, Diack, Henry, Williams.
Replacements: Nelson for Payne (75), Allen for Cave (77), P. Marshall for Pienaar (75), Afoa for Lutton (47), Muller for Stevenson (44), Henderson for Williams (60).
nRaboDirect Pro12 results: Benetton Treviso 30 Edinburgh 10; Glasgow 35 Ospreys 17.