Two moments of inspiration from Daniel Flynn helped Kildare rid themselves of their Croke Park hoodoo and book their place in a Leinster final.

Flynn was making his first start for Kildare since their opening round Allianz League game against Cork and he showed what Kildare had been missing with his moments of class.

In a tight game and with scores tied at 0-11 each, the mercurial forward played a delightful ball across the Westmeath square in the 43rd minute where Jimmy Hyland was able to bundle the ball home from close range.

Four minutes later he produced even better.

After collecting the ball on the right wing, there didn't appear to be much on for him but a quick give and go between himself and Hyland created a gap and he burst right through and tucked the ball under Jason Daly.

The first half had been a cagey affair and the teams were level on five separate occasions before Kildare went to the dressing room with a 0-11 to 0-10 lead.

They suffered a blow late in the half when key midfielder Kevin Feely had to replaced after a serious looking knee injury while Ryan Houlihan didn't appear after the break after taking a knee in the back late in the half.

The quickfire burst of goals had Kildare well placed but Westmeath fought back impressively.

They scored the next two points and then John Heslin was denied a goal by a wonderful Mark Donnellan save in the 53rd minute.

Kildare’s injury woes continued when Eoin Doyle limped out of the game and his leadership, and Feely’s, were keenly missed as Westmeath came on strongly in the final quarter.

Indeed, Westmeath created more than enough chances to at least force the game into extra time but their shooting let them down at a crucial stage and after kicking just one wide in the first half, they kicked ten in the second, most of those coming at a time when they were attempting to build momentum for a late comeback.

Still, they got back to within a point late in the game but it was Shane O’Sullivan who stepped up to kick a brilliant insurance score in the 69th minute.

After losing their last eight games at Croke Park, it is a win that will be savoured around Kildare as they look forward to just their fifth Leinster final since their last title back in 2000.

Kildare: Mark Donnellan; Mick O'Grady, Eoin Doyle, Mark Dempsey; David Hyland, Ryan Houlihan, Kevin Flynn; Kevin Feely 0-1, Aaron Masterson 0-1; Alex Beirne 0-1, Fergal Conway 0-1, Neil Flynn 0-7 (4 frees) Ben McCormack, Daniel Flynn 1-1, Jimmy Hyland 1-1 (1 free).

Subs: Shea Ryan for Feely (34), Darragh Malone for Houlihan and Shane O'Sullivan 0-1 for McCormack (both half-time), Paddy McDermott for Doyle (52), Brian McLoughlin for Hyland (68).

Westmeath: Jason Daly; Jack Smith, Kevin Maguire, Boidu Sayeh; James Dolan 0-1, Ronan Wallace, Sam McCartan 0-1 (1’45); Denis Corroon,Sam Duncan; Ray Connellan, David Lynch 0-1, Ronan O'Toole; Lorcan Dolan 0-5 (1 mark), Ger Egan 0-1, John Heslin 0-8 (7 frees).

Subs: Darren Giles 0-1 for Sayeh (46), Fola Ayorinde for Corroon (51), Tommy McDaniel for Connellan (62), Nigel Harte for McCartan (72).

Referee: D O'Mahoney (Tipperary)