Wayne Fitzpatrick scored a sensational 2-7 -- despite playing with a broken finger on his right hand -- as Kildare lifted a provincial title on their home patch in Newbridge.
Dublin raced into a 1-4 to 0-1 lead by the 21st minute, Shane Hickey scoring their goal.
However, they failed to score again until the 50th minute as Fitzpatrick took charge.
His first goal came in the 23rd minute when he pounced on a rebound and midway through the second half he bagged another with a brilliant strike into the top corner.
Kildare were nine points up with two minutes to play but Dublin rallied, with Adam Rodgers converting a penalty.
They followed that with three quickfire points, but Kildare survived and now move on to play Mayo in the All-Ireland semi-final on February 18.
Scorers -- Kildare: W Fitzpatrick 2-7 (5f), N Flynn 0-3 (1f), R Casey 0-1. Dublin: A Rodgers 1-7 (1-0 pen, 4fs), S Hickey 1-0, G Hannigan 0-1.
Kildare -- D Byrne; H Flaherty, T O'Connell, E Farrelly; C O'Donoghue, B Nolan, E Dempsey; A Bannon-Whelan, G Savage; K McNally, W Fitzpatrick, N Flynn; C Jennings, E O'Keefe, R Casey. Subs: J Kennedy for Flaherty (16), S Mackey for O'Keefe (53), L McCabe for Casey (56), W Freeman for Jennings (56).
Dublin -- Darren Brennan; A Lenihan, G Hannigan, D Allen; E McLoughlin, T Quinn, C Neville; T O'Laitimh, Dean Brennan; C Flynn, T Devlin, B Mallon; A Rodgers, C McLoughlin, S Hickey. Subs: C O'Gara for C McLoughlin (h-t), S Jones for Flynn (45), J Dwyer for E McLoughlin (47), N Kelly for Dean Brennan (57).
Ref -- J Curley.