The French side were beaten 39-32 in Belfast last week, but they were comfortably on top in the return clash to go to 17 points on top of Pool 5, eight ahead of Bordeaux and Ulster with two group games left.
Clermont scored three tries in the first 25 minutes through Isaia Toeva (1st minute) and English full-back Nick Abendanon (18 and 24 mins).
The bonus point was assured just after the interval thanks to an interception try from fly-half Camille Lopez as Clermont swept to 28-0 lead.
But Ulster rallied with three tries of their own through Tommy Bowe (57 and 66 mins) and Franco van der Merwe on the hour mark to cut the deficit to 28-19.
Clermont steadied the ship with a Lopez penalty after 69 minutes before a penalty try was awarded three minutes from the end.
Three-time European champions Toulon suffered their second defeat in four Pool 3 games, going down 22-21 to the Scarlets.
The defeat left the big-spending French side having to hope to squeeze into the last-eight as a best runner-up from a pool where defending champions Saracens can claim a fourth win in four games if they overcome Sale later Sunday.
Welsh full-back Leigh Halfpenny kicked all of Toulon's points on his return to South Wales with seven penalties.
However, his last-minute attempt from long distance missed the target as Scarlets kept their quarter-final hopes alive.
Centre Scott Williams scored the only try of the match for the Welsh region in the first half with Rhys Patchell kicking the remainder of the Scarlets' points.