Ireland had to come from behind in the second half in Rome as the reigning Six Nations champions were given a scare by Italy.
Ireland had scored at least 56 points against Italy in each of their last three Six Nations encounters, and it seemed as though it could be another rout when Quinn Roux scored the opening try after 11 minutes.
Italy got on the scoreboard with a Tommaso Allan penalty, but Italy's defence made a terrible job of dealing with the restart kick, and Jacob Stockdale raced through unopposed to immediately extend Ireland's lead to 12-3.
But the second quarter of the game belonged to Italy, with Allan pulling them closer with another penalty, and then two well-worked tries finished by Edoardo Padovani and Luca Morisi helped Italy to take a stunning 16-12 lead into the dressing rooms at halftime.
Ireland regained the lead 11 minutes into the second half as Keith Earls touched down, and a brilliant burst by Earls 10 minutes later should have secured the bonus point, only for Stockdale to drop the ball when Earls popped it up to him.
The bonus point was sealed with 13 minutes to go, however, as Conor Murray reached over the line from close range. Italy did have a penalty as time expired that would have given them a bonus point, but Ian McKinley dragged his effort wide.
Ireland go into the rest week in third position in the Six Nations table, and will have to defeat both France and Wales in the final two weeks to have any chance of retaining their title. Italy, meanwhile, head to Twickenham to face England next on March 9.