Danielli beat Botes to a high ball in the 33rd minute before bursting clear down the line for a try, with Humphreys sending over another impressive conversion.
Botes missed out with a penalty before the break, leaving the Italians eight points back at the interval.
Ulster pressed early in the second half and were rewarded with a third try on 45 minutes.
It was a carbon copy of the first try with Humphreys supplying the cross-field kick and Gilroy given the easy task of going over from close range and making it four tries from his opening two Ulster appearances.
Humphreys hit a post with the conversion and the fly-half put another kick through for D'Arcy, who missed out on the try and the bonus point after the full-back was controversially adjudged to have failed to get downward pressure on the ball.
Ulster number eight Willie Faloon was sinbinned on 58 minutes for failing to move clear from a ruck and Botes made no mistake with the resulting penalty.
Treviso wasted the chance to get within a converted try of their opponents when Botes missed his third penalty of the night nine minutes later.
The hosts pushed forward late in the game but Ulster held firm to go above the Scarlets and into second spot.
Benetton Treviso: K Burton, L Nitoglia, A Pratichetti, G Garcia, J Maddock, W De Waal, T Botes, I Fernandez Rouyet, E Ceccato, P Di Santo, A Pavanello (capt), C Van Zyl, F Minton, V Bernabo, M Filippuci.
Replacements: B De Jager for Botes (58), A Allori for Rouyet (47), E Pavanello for Bernabo (47), F Sbaraglini, M Muccignat, G Padro, F Semenzato, M Sepe.
Ulster: A D'Arcy; C Gilroy, D Cave, P Wallace, S Danielli; I Humphreys, P Marshall; B Young, N Brady, BJ Botha, T Barker, D Tuohy, P Wannenburg, W Faloon, C Henry (capt).
Replacements: I Whitten for Cave (53), P McAllister for Young (57), A Kyriacou for Brady (73), N McComb for Henry (59), J Cronin, A Birch, I Porter, N Spence.
Bookmark with:
What are these?