![Jonathan Davies, right, scores a try for Wales despite being tackled by Ireland's Gordon D'Arcy...](https://www.odt.co.nz/sites/default/files/styles/odt_portrait_medium_3_4/public/story/2016/04/jonathan_davies_right_scores_a_try_for_wales_despi_4f30486e18.jpg?itok=yPIe2bJT)
A thrilling test was settled in contentious circumstances after flanker Stephen Ferris was penalized for a dangerous tackle on Ian Evans, giving Halfpenny his chance.
"It was the hardest kick I've had to take in all my life," Halfpenny said. "As soon as it went over, the emotion came. Having to deal with the miss against France in the World Cup, putting that over makes it all worthwhile."
Halfpenny missed a late penalty attempt near halfway against France at the Rugby World Cup that would have sent Wales through to meet New Zealand in the final.
His successful kick on Sunday came after two tries by centre Jonathan Davies and another from wing George North, enabling the Welsh to pile fresh misery on Ireland just four months after knocking them out of the World Cup quarterfinals.
"It was end-to-end stuff, an exciting game," Halfpenny said. "It was a tough test and all credit to Ireland, they really gave us a tough game. The score was back and forth and I'm just really pleased to get the result for the rest of the campaign."
Halfpenny had taken over the kicking duties from an out-of-sorts Rhys Priestland, who missed two penalties.
Priestland's opposite number, Jonathan Sexton, slotted three penalties and a conversion, while hooker Rory Best and wing Tommy Bowe scored tries for the hosts in a game in which the lead changed five times.
But Ireland's Grand Slam and Triple Crown hopes were ultimately ended by a Wales team that last won in the Six Nations in Dublin during its Grand Slam title-winning season in 2008.
Wales could be without captain Sam Warburton against Scotland next weekend after he went off at halftime nursing a leg injury.
Ireland, winner of its opening Six Nations match on seven previous occasions, gave Fergus McFadden the No. 13 shirt vacated by revered leader Brian O'Driscoll, who will miss this season's tournament to recover from shoulder surgery.
Wales fielded 10 of the side that beat Ireland at the World Cup, with Priestland and center Jamie Roberts both recovering from knee problems. But forwards Dan Lydiate, Gethin Jenkins, Alun-Wyn Jones and Luke Charteris were sidelined by injury.
Ireland took the lead through a third-minute penalty from Sexton, but Wales kept battering away and was unlucky not to score when flanker Ryan Jones stretched over the line. Television match official Geoff Warren ruled against the visitors following repeated views from a number of angles.
Warren was called upon again soon after, only this time it was a far easier call with Priestland's one-handed pass allowing Davies to touch down in the corner despite Gordon D'Arcy's challenge for a 5-3 lead.
Ireland should have regained the lead 12 minutes before halftime, but Sexton emulated Priestland in missing an easy chance after Mike Phillips was pulled up for obstruction.
The Irish pieced together several threatening phases, and they cut Wales open through a well-worked 38th-minute try. Bowe drifted outside Alex Cuthbert and then freed Best for his sixth try in 55 tests, with Sexton's angled conversion giving Ireland a 10-5 lead.
Sexton extended Ireland's lead with his second successful penalty. But Wales responded, scoring 10 points in two minutes via Halfpenny's penalty and his conversion of Davies' second try.
Priestland's third successive miss with the boot gave Halfpenny the kicking duties, and his accuracy underpinned the Welsh recovery. That was highlighted when North set up Davies' sprint for glory and then found his colleague with a one-handed pass.
But back came Ireland after Sexton completed his penalty hat trick to set the scene for an enthralling final quarter.
Wales briefly threatened to unravel when Davies was in the sin bin, Bowe scoring Ireland's second try 12 minutes from time, but North then powered over in the 76th before Halfpenny's dramatic clincher.