Exciting full-back Jordan Larmour got the scoreboard moving in the first half by fighting his way through Wales’ defence on the right to dot down.
Wales scrum-half Tomos Williams responded impressively, finishing off a fine team move that saw both three-time British & Irish Lion Alun Wyn Jones and Dan Biggar supply perfect off-loads.
Prop Tadhg Furlong, also a 2017 Lion, burrowed his way over from close range to restore Ireland’s lead, before Josh van der Flier dotted down from a driving maul early in the second half.
Wales spent a prolonged period in the Ireland 22, searching for a route back into the game but Ireland held on with some superb defence.
And they finished it off with just four minutes left as wing Andrew Conway dived over in the corner to see off the defending champions.
The defeat is Wales’ first in the Six Nations since February 2018, when they also lost in Dublin, while Ireland are the only home nation who can win the Grand Slam.
Justin Tipuric, a 2013 and 2017 British & Irish Lion, dotted down for Wales with the final play of the match.
Ireland next travel to Twickenham to face England in Round 3, while Wales battle France at home.