Edin Dzeko appeared to have put Manuel Pellegrini's side on course for the three points when his superb strike gave City the lead early in the second half.
But Cardiff hit back when Aron Gunnarsson tucked home from close range just before the hour, before Campbell twice headed home from corners to spark scenes of delirium at Cardiff City Stadium.
Alvaro Negredo got his first goal for City in stoppage time, but it was too little, too late.
Few had given last season's Championship winners any hope of getting a result after City had opened their campaign so impressively against Newcastle.
But Malky Mackay's men worked tirelessly to deny their big-spending visitors the space to work their magic and they ended the game as deserving winners.
Prior to kick-off a section of the Welsh club's fans had walked through the city to express opposition to the changing of the club's kit from blue to red but, come the final whistle, fans wearing both colours joined in euphoric celebrations.
For Pellegrini, there was a reminder that his will not be an easy task, and this poor display means they remain without a win from three Premier League visits to south Wales.
Indeed, they never allowed their visitors to settle, with Joleon Lescott and Javi Garcia showing particular discomfort against Campbell's pace.
Cardiff could have led after just 30 seconds. David Silva and Gael Clichy stood off Craig Bellamy and Lescott missed the Welshman's ball into the box.
Source: PA
Source: PA