Bohemians moved to within three points of the leaders but it was far from comfortable for manager Roddy Collins, his team falling foul of the officials for the second game running. Centre half Shaun Maher was the one to go after receiving his second caution early in the second half.
There was plenty at stake for both sides, particularly for Kilkenny boss Joe McGrath, who was back at Dalymount Park as a manager for the first time since his untimely dismissal two years ago. And he couldn't have asked for a better start with Bohemians caught off-guard with just nine minutes gone.
A free from goalkeeper Matt Nelson left Bohemians flat-footed at the back and Warren Parkes rolled the ball past the advancing Wayne Russell.
But Bohemians were level three minutes later when Simon Webb's free kick bypassed everyone to find the top corner. One might have expected Bohemians to have taken strength from this but remarkably Kilkenny's back five had little to worry about in the opening half-hour.
Bohemians finally picked up the pace with Ray Carolan managing to block Trevor Molloy's effort from a cross by Webb on 34 minutes.
Again Bohemians seemed unable to sustain the momentum and were within a whisker of going behind for the second time when Carlos Rocha just failed to make contact with Paul McAreavy's cross. But in the next attack, Bohemians found the net with Anthony Hopper's persistence paying off on 37 minutes when he drove the ball home after seeing two initial efforts blocked by the Kilkenny defence.
A minor scuffle broke out between the players at half-time, resulting in Gavin Wilkinson being reprimanded by the Waterford referee.
He joined Kevin Hunt and Maher in the book and the latter then received his second caution to reduce the home side to 10 men with over half an hour remaining. In the final action of the game, Kilkenny's Derek McGrath also went to the line for a second bookable offence.
Bohemians: Russell; O'Connor, Maher, Hill, Hunt; Williamson, Caffrey, Hunt, Hopper; Molloy, Crowe. Subs: Markey for Williamson (52 mins), O'Neill for Crowe (87 mins).
Kilkenny City: Nelson; O' Hanlon, Purdy, Mulcahy, Wilson, Carolan; McGrath, McAreavy, Brunton; Rocha, Parkes. Subs: Riordan for Parkes (68 mins).
Referee: J O'Neill (Waterford).