Swansea managed to lift themselves off the bottom of the Football League after a stunning back-header from James Thomas sparked a convincing fightback against the one-time promotion favourites.
However, it was City who dominated the first half, but they did always look rather shaky in defence.
As early as the third minute a mix-up nearly allowed John Williams in with Paul Musselwhite nowhere.
In the 14th minute Ryan Williams slid an inch-perfect ball to Stuart Green, who shot from the edge of the penalty area. With the home fans already cheering what looked like a certain goal, it rolled wide of the right post and Green kicked the advertising hording in frustration.
But this was largely a scrappy affair, and the Tigers had a scare on 25 minutes when a Thomas shot was cleared off the line by John Anderson after a terrible mix-up between Musselwhite and Justin Whittle.
But two minutes later City went ahead after Phil Jevons, released by Green, scored with a clever left-foot finish from the edge of the area.
After 38 minutes from a corner Dave Theobald rose above the defence to bullet a header at Musselwhite who tipped it away acrobatically.
Three minutes later Jevons was released down the left channel but could only shoot at Roger Freestone.
Thomas stunned City after 52 minutes from Theobald's flicked throw-in. Thomas's header totally foxed Musselwhite, as it looped over the City keeper, marking the Swans' first League goal in more than six hours.
City's heads went down and it was the Swans who saw the better of the play. Former Swans manager, Jan Molby, in a move that smacked of desperation, made a triple substitution in the 58th minute, with Shaun Smith, Williams and Gary Alexander being replaced by Mike Edwards, Simon Johnson and Lawrie Dudfield.
Steve Watkin and Damien Lacey were both off target, while after 70 minutes Kris O'Leary saved a Johnson shot on the line and eight minutes from time Watkin had a shot held right on the line by Musselwhite.
In the dying seconds Jevons flung himself at a Johnson cross, but could not quite connect to scorewhat would surely have been a winning goal.
As it was, it stayed all square and City, not for the first time this season, left the field to a chorus of boos