The 32-year-old, who was also reportedly on Swansea's radar during the summer transfer window, has not been training with the Baggies this season after falling out of favour at The Hawthorns.
Odemwingie hit the headlines in January after driving to QPR on deadline day to close a deal, but the move fell apart as West Brom refused to accept their bid.
He told BBC Sport: "It's a fresh start, a whole new beginning.
"I've joined a club with a strong determination to achieve their goals.
"Cardiff City showed great intent to bring me here. I have to thank the manager and everyone involved in making this transfer happen.
"There are talented and dedicated players in the team, everyone is moving in the right direction and I also want to make a strong contribution as well."
For the big stories and the banter follow us on Twitter: @tribalfootball