Ireland condemned Italy to a 30th straight Guinness Six Nations defeat and in doing so earned their first win of the 2021 campaign.
Following the opening games against Wales and France, Ireland had just two losing bonus points to show and were in need of a much-improved performance to boost their confidence.
Andy Farrell's side ran in six tries, and had three disallowed, against an Italian outfit that showed none of the promise on display in their recent defeat at Twickenham.
They conceded 18 penalties and had two players sent to the sin bin in a thoroughly ragged showing.
That was certainly not Farrell’s problem as he recorded a first away win in the championship, as his side played with an increased tempo and noticeably more intent in attack and defence.
It was far from perfect but does provide a base for the side to build on ahead of a clash with Scotland in Murrayfield in two weeks' time.
The home side were the first to get points on board, out-half Paolo Garbisi landing a fourth-minute penalty following some loose breakdown play by the Irish pack.
But Ireland were to dominate the rest of the half, racking up 27 points in just over half an hour of play.
Returning captain Johnny Sexton, who was one of seven changes to the side that lost to France, levelled matters with a penalty in the sixth minute following an offside against Luca Bigi.
Centre Garry Ringrose grabbed Ireland's first try in the 11th minute, the Leinster man touching down after a short burst close to the line that came moments after Iain Henderson had what looked like a perfectly good try disallowed by TMO Romain Poite.
There had been much talk of Ireland's reluctance to embrace an offloading game but the next two tries came directly from support players running off ball-carriers.
Firstly, Ringrose, out of heavy traffic, slipped the ball to full-back Hugo Keenan, who ran in from 22 yards for his fourth try in nine games, three of which have now come against Italy.
Lively winger Jordan Larmour, on his first start in a year, then made space for flanker Will Connors to touch down out wide and with Sexton kicking five from five, after which he had moved to more than 450 Six Nations points, Ireland found themselves 27-3 up in the 38th minute.
The Azzurri, however, had the last say of the half with flanker Johan Meyer barging over after taking a Garbisi offload close to the line.
The young fly-half, whose normal partner at scrum-half Stephen Varney was ruled out before the game with a hand injury, converted to reduce Ireland's lead to 17 points at the interval.
CJ Stander's barge over the line soon after the resumption secured a bonus point for the visitors.
Munster scrum-half Craig Casey and Leinster lock Ryan Baird both made international debuts in the 64th minute but Ireland may be frustrated that their could only add two tries to their tally.
After a period of toil, more Italian indiscipline saw forwards Giosue Zilocchi and Bigi sent to the sinbin, a spell in which Connors grabbed his second of the day after a long-range maul and also saw touchdowns from Stander and James Lowe ruled out by an eager Poite.
Replacement wing Keith Earls crossed in the corner for his try in overtime with Sexton curling in a beautiful touchline conversion as he signed off on a flawless place-kicking performance with eight out of eight.
We need your consent to load this comcast-player contentWe use comcast-player to manage extra content that can set cookies on your device and collect data about your activity. Please review their details and accept them to load the content.Manage Preferences
Italy: Jacopo Trulla, Luca Sperandio, Juan Ignacio Brex, Carlo Canna, Montanna Ioane, Paolo Garbisi, Callum Braley; Michele Lamaro, Andrea Lovotti, Luca Bigi (Capt), Marco Riccioni, Marco Lazzaroni, David Sisi, Sebastian Negri, Johan Meyer, Michele Lamaro.
Replacements: Gianmarco Lucchesi, Cherif Traore, Giosuè Zilocchi, Niccolò Cannone, Maxime Mbanda, Guglielmo Palazzani, Federico Mori, Mattia Bellini.
Ireland: Hugo Keenan, Jordan Larmour, Garry Ringrose, Robbie Henshaw, James Lowe, Johnny Sexton (Capt), Jamison Gibson-Park; Dave Kilcoyne, Ronan Kelleher, Tadhg Furlong, Iain Henderson, James Ryan, Tadhg Beirne, Will Connors, CJ Stander
Replacements: Rob Herring, Cian Healy, Andrew Porter, Ryan Baird, Jack Conan, Craig Casey, Billy Burns, Keith Earls.
Referee: Mathieu Raynal (FFR)