An attacking masterclass led by goalscorer Jimmy Hyland secured Kildare's return to the Leinster SFC final, the Lilywhites bouncing back following the concession of a goal after just 12 seconds.

Ronan O'Toole gave Westmeath the perfect start with a goal just moments into the provincial semi-final but Hyland's goal after eight minutes put Kildare ahead and they remained in that position until full-time.

Hyland, the star of Kildare's All-Ireland U-20 success in 2018, finished with 1-04 at Croke Park while Ben McCormack and Darragh Kirwan contributed 0-05 each.

Daniel Flynn showed moments of genius too as Kildare marched forward to the 28 May decider.

The 2-15 they conceded will be a concern though with 2-14 of that Westmeath tally coming from open play.

Jack Cooney's Westmeath pushed Kildare hard late on too and the Division 3 outfit scored five of the game's last six points to leave just three in it at the full-time whistle.

Cooney expressed disappointment afterwards that more time wasn't played as he felt Westmeath were in a position to potentially pinch an equalising goal.

It wasn't to be though and they will head now to the Tailteann Cup with hopes of claiming the inaugural title.

The 2004 Leinster champions couldn't have asked for a better start with Ronan Wallace bursting through and hand-passing over the top to set O'Toole free for the opening goal.

Ronan O'Toole, who got the Westmeath opener after 12 seconds, departing the field of play

It amounted to Kildare starting the game three points down but they quickly got on top and forced Westmeath into a series of mistakes, 1-08 of Kildare's first-half tally of 1-13 coming from turnovers by Cooney's estimation.

Hyland's goal came after a Westmeath kick-out was intercepted by Kevin Flynn, freeing Daniel Flynn to play in Hyland for a routine palmed finish.

Kildare turned the screw in the following 20 minutes or so with a series of points from the likes of Kirwan, Paul Cribbin and Hyland to open up a six-point lead though Westmeath's second goal shortly before half-time gave them renewed hope.

Jamie Gonoud struck that major when he capitalised on a piece of good fortune. Gonoud initially attempted to pick out Wallace with a hand-pass but the ball spilled loose following a challenge on Wallace, allowing Gonoud to continue his run and tap the ball into the net.

That 33rd minute goal left just two points between the teams though Kildare wrestled back momentum before the interval with points from Kevin Flynn and McCormack to lead by 1-13 to 2-06.

Kildare pushed on strongly in the third quarter and Naas star Kirwan booted three points in this period to help open up a 1-19 to 2-09 lead.

At this stage, it looked like Kildare would push on for a big win but they only scored two more points and both were from placed balls, McCormack converting a mark and sub Neil Flynn booting over from a late free.

Westmeath in contrast finished with a burst of scores and outscored Kildare by 0-05 to 0-01 from the 54th minute to leave just a goal in it.

Kildare: Mark Donnellan; Mike Joyce, Shea Ryan, Mick O'Grady; Tony Archbold (0-01), James Murray, Kevin Flynn (0-01); Kevin Feely, Kevin O'Callaghan; Alex Beirne (0-01), Ben McCormack (0-05, 0-01m), Paul Cribbin (0-01); Darragh Kirwan (0-05, 0-01f), Daniel Flynn (0-02, 0-01m), Jimmy Hyland (1-04, 0-01f).

Subs: Paddy McDermott for Cribbin 49, David Hyland for Joyce 54, Fergal Conway for O'Callaghan 58, Neil Flynn (0-01, 0-01f) for Hyland 61, Aaron Masterson for Feely 69.

Westmeath: Jason Daly; Jack Smith, Kevin Maguire, David Giles; Nigel Harte (0-01), Ronan Wallace, Jamie Gonoud (1-00); Ray Connellan (0-02), Sam McCartan (0-04); Jonathan Lynam, Ronan O'Toole (1-03), David Lynch; Ger Egan, John Heslin (0-04, 0-01f), Alex Gardiner.

Subs: Luke Loughlin (0-01) for Lynam 34, Sam Duncan for Gardiner 49, James Dolan for Lynch 55, Kieran Martin for Egan 62, Robbie Forde for Giles 68.

Referee: Sean Hurson (Tyrone).