Image source, Getty Images
Oisin O'Donoghue, 19, came off the bench to score Tipperary's fourth goal
David Mohan
BBC Sport NI journalist
Oisin O'Donoghue's 70th-minute goal proved decisive as Tipperary beat Kilkenny 4-21 to 0-30 in a semi-final thriller at Croke Park to reach the All-Ireland Hurling final for the first time since 2019.
Having lost Darragh McCarthy to a second yellow card in the 60th minute, it seemed Kilkenny were about to break for home when they led in the closing stages.
But Liam Cahill's side showed resolve to get back into it and, with the game in the balance, substitute O'Donoghue cracked home a goal of the year contender.
It was a rollercoaster of a game with Kilkenny making the early running, only for Tipperary to storm into it as John McGrath hit the net early on, with further goals from McCarthy and Jason Forde helping them lead 3-11 to 0-16 at the break.
Kilkenny seemed to be winning the arm wrestle in the second period, but another twist came late with O'Donoghue's goal followed by a match-saving block from Robert Doyle on the line to deny John Donnelly and prevent the Cats from forcing extra-time.
Tipperary advance to the 20 July final against neighbours and Munster rivals Cork - the first time they will have met on hurling's biggest day.
Image source, Getty Images
John McGrath sent Tipperary on their way with an early goal
It took a while to settle but Kilkenny did it better with TJ Reid, Billy Ryan and Martin Keoghan all pointing.
Tipperary hit back with the first of their first-half goals as a Jake Morris shot was blocked into the path of John McGrath, who gave Eoin Murphy no chance.
However, it failed to settle Tipperary and Kilkenny began to flow with Reid, Ryan and Keoghan all hitting their second points, while Jordan Molloy landed two of his own.
Conor Stakelum, a late switch on the Tipperary team, helped get his side moving with points either side of John Donnelly for Kilkenny, but gradually Tipp grew into it with Eoghan Connolly firing over from deep.
The gap was just four after 20 minutes when suddenly, Tipperary caught fore and the catalyst was their second goal as Darragh McCarthy got in behind the Kilkenny defence and even though Eoin Murphy got down to the shot, the ball found the net.
Murphy then had to make a superb save from Jake Morris to divert up and over but could do nothing soon after as following John McGrath's go-ahead score, McCarthy popped a hand-pass inside and Jason Forde was quickest to react as he flicked over Murphy for goal number three as now it was Tipp four up.
Kilkenny did steady with Reid accurate from placed balls, but Tipperary were getting into a flow with McGrath, Connolly and Stakelum all on target as Liam Cahill's men went in at the break with a 3-11 to 0-16 advantage.
Image source, Getty Images
Tipperary overcame Darragh McCarthy's sending off in the second half
The Leinster champions responded well after the break was after Reid and McCarthy swapped frees, Cody and Molloy narrowed the margin as they gradually reeled Tipperary in.
Mullen and Kenny had them within one and it was level entering the final 20 minutes when Reid landed a free and the Ballyhale man then edged his team back in front for the first time in 30 minutes.
Tipperary began to have issues with their shooting as the wides tally hit double figures, but it remained neck and neck with Forde taking over the free-taking duties.
The impressive Martin Keoghan, who hit six points from play for Kilkenny, put his team back in front when McCarthy - booked earlier for a loose stick on Paddy Deegan - committed a similar offence on Eoin Murphy and was flashed yellow for the second time and then red.
Jake Morris levelled, but when Keoghan and Cian Kenny gave the Cats a two-point lead, they looked in a good place, but Forde would work his magic with a pair of frees and then edged his team in front from play, only for Keoghan to level as extra-time seemed areal possibility.
Enter O'Donoghue as Tipperary were given an advantage and he let fly with a stunning shot to the top-left corner of the net as the game moved into added time.
Noel McGrath added a score to leave Kilkenny needing a miracle with Jordan Molloy pulling one back, but they needed a goal.
And while they got their chance when Donnelly let fly, Doyle stopped the shot on the line to seal Tipperary's place in the decider for the first time since their 2019 triumph.
Tipperary: R Shelly; R Doyle, E Connolly (0-3), M Breen; C Morgan, R Maher, B O'Mara; W Connors, C Stakelum (0-3); J Morris (0-4), A Ormond, S O'Farrell (0-1); D McCarthy (1-2, 0-2f), J McGrath (1-2), J Forde (1-5, 0-4f).
Subs: N McGrath (0-1) for J McGrath (50), A Tynan for S O'Farrell (53), D Stakelum for W Connors (59), O O'Donoghue (1-0) for C Stakelum (63), S Kenneally for A Ormond (70+1)
Kilkenny: E Murphy; M Butler, H Lawlor, S Murphy; M Carey, R Reid, P Deegan; C Kenny (0-2), J Molloy (0-4); A Mullen (0-2), J Donnelly (0-1), B Ryan (0-2); M Keoghan (0-6), TJ Reid (0-11, 8f, 1 65), E Cody (0-2).
Subs: D Blanchfield for S Murphy (HT), S Donnelly for A Mullen (66), K Doyle for C Kenny (70+1)
Referee: J Owens (Wexford)