At the home of Warren Gatland’s Six Nations Grand Slam heroes the two teams produced a fittingly entertaining encounter as Claire Dean scored a final-minute try to win it for Swansea.
A see-saw first period ended with Swansea 15-10 to the good as there were five tries in the opening 40 minutes.
Cardiff’s scorers were Megan Jenkins and Lilianna Podpolic.
Swansea hit back through Emma Hennessey, Emily Sheppy, and captain Jess McCreery.
In the second period Cardiff crossed for a controversial score through Ceri Edwards. The try was given, but Edwards appeared to be short of the line.
Still, Swansea weren’t to be denied in a thrilling contest.
Courtney Keight, Cerys Hurenkamp both crossed the whitewash before Dean came up trumps with the game’s crucial score.