Luke McGrath and Dominic Ryan crossed the line in the first half as the Irish province led 12-3 at the interval.
Adam Byrne's try widened the gap after half-time but the hosts' efforts were rewarded with a Federico Ruzza try.
Dan Leavy went over late on to hand in-form Leinster their bonus point and make it 10 wins from their last 11 matches in the competition.
Leinster had scored eight tries in beating Zebre 52-0 two weeks earlier but the Italians proved to be a more resilient outfit on home soil.