Former Swan loanee Steven Caulker scored the only goal as Cardiff City won the first Welsh derby in the Barclays Premier League.
Caulker rose highest to head a Craig Bellamy corner into the bottom corner after 62 minutes to earn the hosts the points at The Cardiff City Stadium.
To end a miserable day for the Swans, keeper Michel Vorm was dismissed in added-on time after sub Fraizer Campbell beat him to a clearance upfield.
In a game of two halves, the Swans enjoyed the first 45 with Michu getting the best chance but he could only fire his volley wide.
But Cardiff came out of the blocks in the second half, and Caulker's goal proved the difference just past the hour.
Michael Laudrup made just one change to his starting XI as Jonjo Shelvey was recalled and that moved Michu up front, which meant club record signing Wilfried Bony was included among the substitutes.
CARDIFF: David Marshall, Kevin Theophile-Catherine, Steven Caulker (capt), Ben Turner, Andrew Taylor, Gary Medel (Kim Bo-Kyung, 88), Don Cowie, Craig Bellamy, Jordan Mutch (Aron Gunnarsson, 54), Peter Whittingham, Peter Odemwingie (Fraizer Campbell, 75).
SUBS: Joe Lewis, Mark Hudson, Craig Noone, Nicky Maynard.
SWANS: Michel Vorm, Angel Rangel, Chico Flores, Ashley Williams (capt), Neil Taylor, Leon Britton (Alejandro Pozuelo, 71), Jonjo Shelvey, Jonathan de Guzman, Nathan Dyer, Wayne Routledge (Alvaro Vazquez, 81), Michu (Wilfried Bony, 65).
SUBS: Gerhard Tremmel, Dwight Tiendalli, Jordi Amat, Jose Canas.
In front of an electric atmosphere at The Cardiff City Stadium, the Swans quickly settled into the game and enjoyed the early territory.
And the visitors carved open the first chance after five minutes, with Michu controlling Jonjo Shelvey's cross before volleying over from 12 yards.
The Swans continued to probe, and Nathan Dyer saw his effort fly wide after he latched onto Ashley Williams' cross-field pass.
Michael Laudrup's side tested David Marshall for the first time after ten minutes, the keeper swatting away Michu's shot.
The Swans continued to enjoy the majority of possession and territory, but they failed to create any further chances in the half as both teams were solid at the back.
The teams went into the break on level terms, but Laudrup will have been happy with his side's first-half performance.
HALF-TIME: Cardiff 0 Swans 0
The hosts started the second half far the brighter of the teams, and Peter Whittingham showed their intent early on but he could only shoot wide.
Cardiff had the better possession and spent the early exchanges in Swansea's half, with the visitors finding it difficult to impose themselves onto the game.
And The Cardiff City Stadium erupted just past the hour as they broke the deadlock.
Craig Bellamy swung in a corner and former Swan Steven Caulker rose high above Chico Flores to nod down and into the bottom corner.
Laudrup immediately made a change, Wilfried Bony coming on for Michu, who had earlier gone down with an ankle injury.
The Swans went in search of an instant reply, but Neil Taylor fired wide after an Angel Rangel cross dropped to him.
Laudrup made another change as Alejandro Pozuelo came on in place of Leon Britton as the visitors went for a more attacking approach.
Wayne Routledge then drove a low effort wide, in what proved to be his final input as he was replaced by Alvaro Vazquez.
Cardiff were still looking dangerous on the counter attack, and sub Fraizer Campbell was denied by a superb block by Pozuelo from just ten yards out.
The Swans were doing their utmost to level the scores, and Marshall had to swat aside a bouncing Jonathan de Guzman free-kick.
Pozuelo then drove a powerful looking effort towards goal which Marshall had to dive to his right to keep out.
Then, with five minutes of added on time to come, a long clearance upfield saw Campbell win the race against the onrushing Vorm, and the Dutch keeper was sent off as the striker went down under his challenge some 25 yards out.
Angel Rangel went in goal, and he was called immediately into action as he tipped over a free-kick.
That proved the end of the action, though, as Cardiff claimed the points with the Swans now looking towards their Europa League tie against Kuban Krasnodar in Russia.