Dean Windass salvaged a point for Bradford with an 88th-minute penalty.
The striker fell to the ground after an off-the-ball challenge from Kristian O'Leary, who was subsequently sent off.
Windass had given Bradford the lead after 23 minutes, but O'Leary equalised 10 minutes later with a header from Tom Williams' near-post corner.
Adebayo Akinfenwa put Swansea in front after 51 minutes when Donovan Ricketts dropped Williams' cross, but Windass had the last word to grab a point.
Bradford: Ricketts, Doyle, Wetherall, Bower, Parker, Colbeck, Schumacher, Bridge-Wilkinson, Bentham (Logan 73), Windass, Hibbert.
Subs Not Used: Howarth, Clarke, Swift, Brown.
Booked: Bentham, Doyle.
Goals: Windass 23, 88 pen.
Swansea: Gueret, Duffy, Austin, Lawrence, Painter, Butler, Britton, O'Leary, Williams, Akinfenwa, Fallon.
Subs Not Used: Iriekpen, Watt, Jones, Graves, Allen.
Sent Off: O'Leary (85).
Booked: Fallon, Austin, Lawrence.
Goals: O'Leary 33, Akinfenwa 52.
Att: 7,347
Ref: E Ilderton (Tyne & Wear).