Cardiff are now unbeaten in six games after a Desmond at the KCOM.
Danny Ward struck in the 93rd minute to save a point for Cardiff City after they looked to have blown the chance of any reward by conceding an 89th minute goal to Hull.
After dominating the first half, in which Junior Hoilett hit the bar, the visitors shot themselves in the foot moments before half time when they gave away a free kick near the edge of the box.
Up stepped in-form Kamil Grosicki and he placed it past the wall and into the net to give the home side a half time lead. But it didn't last with Robert Glatzel levelling 10 minutes into the second half.
The German striker met Leandro Bacuna’s cross to get his second City goal and the game was level.
Hull enjoyed more of the ball midway through the second half but as the game entered the latter stages a number of substitutions meant the flow could have gone either way.
After being punished by a free kick one minute from half time, history repeated itself one minute from the 90.
Jarrod Bowen's cross was met by Jordy de Wijs who headed what seemed a certain winner but Cardiff took their chance when it came to level. Alex Smithies' long clearance was flicked on by Aden Flint and Danny Ward raced through to slot the ball into the net.
Cardiff survived one last scare when City had to clear off their own line before the final whistle.
That was a sixth game without defeat for Cardiff, but four of those have been draws. It's not pretty at times but we are not losing games. City end the day six points off top spot and four points from the play off places in a very tight top half of the Championship.
Next up is a midweek home game against QPR on Wednesday (7:45pm)
Hull City: George Long; Eric Lichaj ©, Reece Burke, Jordy de Wijs, Brandon Fleming; Kevin Stewart, Leonardo Da Silva Lopes (Josh Bowler 62), Jackson Irvine; Jarrod Bowen, Kamil Grosicki (George Honeyman 85), Josh Magennis (Tom Eaves 74).
Subs Not Used: Matt Ingram, Ryan Tafazolli, Daniel Batty, Norbert Balogh.
Cardiff City: Alex Smithies, Lee Peltier, Joe Bennett, Sean Morrison, Aden Flint, Leandro Bacuna, Joe Ralls, Robert Glatzel (Nathaniel Mendez-Laing 71), Marlon Pack, Gavin Whyte (Danny Ward 71), Junior Hoilett (Josh Murphy 82).
Subs Not Used: Neil Etheridge, Callum Paterson, Curtis Nelson, Omar Bogle.
Referee: Mr J. Gillett.