Despite leading at half-time through Conor McCarthy’s second-minute goal, the reigning champions were pegged back when Gavan Holohan’s cross went in off Conor McCormack and the home side went ahead in the 81st minute when Ismahil Akinade scored what proved to be the winning goal in a game which ended in chaos.
With Dundalk beating Shamrock Rovers, it means that the Lilywhites and Waterford now sit two points clear of City, who had the dream start when Aaron Barry headed a Barry McNamee free kick back across for McCarthy to net from close range.
However, Waterford responded well to that setback and City struggled to impose themselves, though Mark McNulty wasn’t overly tested. At the other end, the closest City came to doubling their lead was when Garry Buckley just couldn’t get enough on Kieran Sadlier’s cross shortly before half-time.
Early in the second period, Waterford came out with renewed impetus and were level when City failed to clear and Holohan’s ball cannoned off McCormack and in.
City had a chance to lead again just after the hour when a loose ball from Bastien Héry put Barry McNamee in but his low shot was agonisingly wide of the post.
Waterford continued to press, with Héry shooting wide with a low effort, and they went ahead when Aborah set up Akinade, his shot looping in after Seán McLoughlin almost got a good block in, Courtney Duffus making sure on the line.
Deep in injury time as City sought an equaliser, a brawl broke out on the sideline, with Waterford's Héry and Aborah and City's Buckley and sub Steven Beattie red-carded and the two managers, John Caulfield and Alan Reynolds, ordered off too.
When play restarted, a Karl Sheppard cross was headed over by Seán McLoughlin and that was the last action.
WATERFORD (4-1-2-1): Vigouroux; Comerford, Browne, Webster, Barnett; Keegan; Héry, Aborah (Puri 90); Holohan; Duffus, Akinade (Feely 85).
CORK CITY (4-2-3-1): McNulty; McCarthy, Barry, McLoughlin, Griffin; McCormack (Keohane 70), Morrissey (O’Hanlon 83); McNamee, Buckley, Sadlier; Cummins (Sheppard 74).
Referee: R Rogers (Dublin).