The 30-year-old previously spent 18 months with Birmingham between January 2010 and June 2011, helping the club lift the League Cup during his time at St Andrew's.
After struggling to win a regular spot in the West Brom XI this season, the Baggies have allowed Gardner to move to Birmingham on a six-month loan, with the view to a permanent move at the end of the 2016-17 campaign.
"Craig has done a great job for me and the club and we were certainly not in any hurry to see him leave," West Brom boss Tony Pulis told the club's official website.
"But he is desperate to play first team football which I could not guarantee and this is a terrific opportunity for him at Birmingham City. He goes with our very best wishes."
Gardner appeared 85 times for Albion after joining from Sunderland in 2014, scoring six times in the process.