A drop goal and penalty from Ian Keatley kept Connacht in touch after a high tempo first half, and Eric Elwood's men should really have been closer.
Sean Cronin's superbly-taken try, adding to five more points from Keatley's boot, closed the gap to 17-16 with Humphreys kicking his first penalty.
The Ulster out-half added another in the 66th minute and the win was secured when Darren Cave broke through for a seven-pointer.
Ulster pressed for a bonus point score but they ran out of time. Their seventh straight victory at Ravenhill was enough to spring them into second in the table, ahead of Saturday's matches involving Leinster and the Ospreys.
Ireland head coach Declan Kidney was an interested spectator at the Belfast venue, monitoring the fitness and form of a number of players with the Rugby World Cup just over four months away.
Ulster made a horror start against Leinster last time out but back on their home patch, they were much more composed.
Early pressure on the Connacht lineout forced a fumble in their 22 and prop Paddy McAllister had to be tackled into touch.
His front row colleague Jerry Cronin, who was making his first senior start for Ulster, gained good yardage after not being held in the tackle and just moments later, the hosts were in under the posts.
An inside pass from Humphreys invited D'Arcy through a gap in the Connacht midfield, Cave was up on his shoulder in support and he passed for Best to finish off a fluid attack.
Humphreys converted, but from the restart Connacht's abrasive pack rumbled forward and set up Keatley for a right-footed drop goal from just outside the 22.
Ulster turned down a kickable penalty as they looked to build on their lead, however indiscipline at the breakdown cost them territory and Connacht survived.
Centre Cave, who recently returned from a hamstring injury, was hungry for work. He popped up in a high-paced attacking movement before bringing down the lively Fionn Carr as he threatened to break out of the 22.
Some good counter-rucking won Connacht a long range penalty, 22 minutes in, which Keatley sent narrowly wide.
Keatley redeemed himself when using turnover ball near halfway to dart out to the left and send Carr through on a terrific run into the Ulster 22. Frank Murphy kept the move going, but Troy Nathan's kick to the right was knocked on by a leaping Eoin Griffin.
Connacht gave Ulster very little room to manoeuvre in, their captain Johnny O'Connor managing to rip the ball free from Pedrie Wannenburg off the back of a scrum. Pienaar was also pressured into a hurried clearance.
The westerners, with a fit-again John Muldoon making his presence felt, had a sustained phase of possession in and around the Ulster 22. Mike McCarthy, Carr and Cronin were all causing problems for the home defence.
Nonetheless, Ulster held out and in the 31st minute they turned defence into attack in devastating fashion.
Humphreys led a charge out of the Ulster half after exposing a gap between the covering Cronin and Jamie Hagan. He drew the cover and passed for the onrushing D'Arcy to score to the right of the posts.
The conversion was added by Humphreys and Connacht hit back in injury-time, with Keatley, from just inside the Ulster half, punishing Nevin Spence for tackling a player without the ball.
After an early bout of aerial ping pong, Dan Tuohy infringed and offered Connacht the first scoring chance of the second half. But Keatley's penalty attempt bounced back off the left hand post and Pienaar cleared to touch.
Just minutes later, Chris Henry was the offender at a ruck 40 metres out from the Ulster line and Keatley was on target this time.
Humphreys replied with a 28-metre strike, punishing Bernie Upton for hands in the ruck. However, Connacht conjured up a cracking score to draw within one point of their provincial rivals.
With 50 minutes gone, Keatley made a half-break and the rampaging Cronin took his offload, brilliantly angling his run and edging past D'Arcy on the way to the line. Keatley tagged on the extras and the game was back in the melting pot.
A tense ten minutes ensued, Ulster probing for most of it in the Connacht half. Then, a raking kick downfield from Nathan was knocked on by Craig Gilroy, giving the visitors a good platform from the scrum.
Murphy led a surge out to the right, but Ulster were equal to it and replacement Tiernan O'Halloran was bundled into touch.
Better continuity and attacking speed from Ulster got them within inches of the try-line and they were just held up, following strong carries from Spence, Henry and Best.
They won a free-kick from the scrum and although Keatley forced a knock on from Simon Danielli, Ulster gained a penalty after Connacht replacement prop Ronan Loughney dropped a scrum.
Humphreys landed the resulting penalty from straight in front of the posts, extending his side's lead to four points with 14 minutes remaining.
A pinpoint kick out of hand from Pienaar presented Ulster with another chance to build a score. They maintained their presence in the Connacht 22 and after an athletic lineout take from replacement Robbie Diack, McAllister was held up as he tried to force his way over.
But the third try for Brian McLaughlin's side duly arrived in the 75th minute. From a close-in scrum, Cave collected Humphreys' flat pass at pace and rounded in behind the posts. The conversion took the margin out to 11 points.
Connacht were tiring and Ulster were in search of a fourth try in a series of late raids.
However, a Humphreys break over halfway amounted to nothing and the Heineken Cup quarter-finalists were unable to get back within scoring range, with both sets of players out on their feet by the finish.
|Ulster Rugby Score Card|
|Connacht Rugby Score Card|