The 6ft 4in player was born in London but moved to Ohio in the United States as a nine-year-old.
He joined the Posh in July 2013 but left by mutual consent in April 2014 having failed to make a single first-team appearance.
Horton will now join City's under-21 side and travel to Sarajevo in Bosnia-Hercegovina for a pre-season friendly.
Haven't been able to say anything until now but really excited to have joined the set up at @CardiffCityFC Looking forward to the future ⚽️
— Charlie Horton (@Charlie_Horton1) July 9, 2014