Kilkenny prevailed by a point at Croke Park to book their place in this year’s All-Ireland final.