Louis Rees-Zammit scored a try on his Six Nations debut as Wales held off 14-man Ireland to win 21-16 at the Principality Stadium.
The 20-year-old Gloucester wing pounced midway through the second half, destroying Irish hopes of a famous triumph over adversity after flanker Peter O’Mahony’s 14th-minute red card.
Munster forward O’Mahony was sent off following a reckless shoulder-led hit to Wales prop Tomas Francis’ head, but Ireland still led until Rees-Zammit struck.
Ireland also lost lock James Ryan to a failed head injury assessment, and skipper Johnny Sexton’s afternoon ended 11 minutes from time when Wales flanker Justin Tipuric’s knee accidentally caught him in the head.
But Sexton’s eight points and a try by lock Tadhg Beirne gave Ireland scent of a first Six Nations victory in Cardiff since 2013, and they mounted relentless late pressure before replacement Billy Burns missed touch with a penalty in the final seconds that would have given his team an attacking line-out.
George North’s 42nd touchdown for his country, three Leigh Halfpenny penalties and a conversion ultimately broke Ireland, despite a late Burns penalty.
It meant that Wales boss Wayne Pivac could celebrate just a fourth victory from 11 Tests since he succeeded Warren Gatland.
Ireland, though, must regroup quickly – mentally and physically – and dust themselves down for a Dublin showdown against resurgent France in just seven days’ time.
Pivac recalled Ospreys flanker Dan Lydiate for his first Wales appearance in more than two years, but Josh Adams and Liam Williams were both suspended, while Rees-Zammit and centre Johnny Williams made their Six Nations bows.
Sexton recovered from a hamstring problem to win his 96th cap, and there was a start for flanker Josh Van Der Flier, who replaced an injured Caelan Doris in a reshuffled Ireland back-row.
Wales opened the scoring after five minutes when Halfpenny kicked a short-range penalty, but Lydiate’s international return ended soon afterwards.
He required treatment to his right knee after appearing to lose his footing, and he was forced out of the contest, being replaced by Josh Navidi.
Ireland, though, suffered a far greater blow just four minutes after Lydiate’s exit when O’Mahony was red-carded.
Referee Wayne Barnes had no choice but to send him off following an inexplicable loss of discipline, and it meant Ireland faced a mountain of Himalayan proportions.
Wales then doubled their advantage courtesy of a second Halfpenny penalty, this time following a high tackle by Sexton on Johnny Williams.
Williams went off for a head injury assessment when he attempted to tackle Garry Ringrose, and Ryan also needed an HIA shortly after, with Nick Tompkins going on for Wales and Iain Henderson taking Ryan’s place.
In another blow for Ireland, Ryan did not rejoin the action, while Williams was also forced permanently out of the game.
Despite Ireland’s double setback, they rallied impressively, dominating territory and possession as Sexton cut the deficit by kicking a 40-metre penalty.
It was an impressive response by the visitors, and Sexton hauled them level five minutes before half-time through a second successful penalty.
And it got even better for Ireland as Wales continued to struggle, with centre Robbie Henshaw brushing off two attempted tackles, linking with Van Der Flier, before Beirne touched down.
Sexton’s conversion made it 13-6 at the break, and there was more woe for Wales as scrum-half Tomos Williams limped off with what appeared to be a hamstring problem, and Gareth Davies replaced him.
Wales needed a response, and it was centre North who delivered after he gathered Navidi’s pass and broke clear despite close attention from three defenders.
Halfpenny missed the conversion, but Wales were back in the contest following an error-strewn spell, then Rees-Zammit applied a brilliant one-handed finish before Halfpenny converted from the touchline.
The full-back added a third penalty with 15 minutes left, and Wales had finally found a way to see themselves home ahead of next Saturday’s Murrayfield clash against Scotland, despite Ireland’s late rally.