The 23-year-old Shanklin leaves Saracens after the arrival of former Wallaby Rod Kafer from Leicester Tigers, and amid the impending retirement of Australian legend Tim Horan.
Capped 12 times by Wales so far, Shanklin is the second ex-Saracens player to make the move to Cardiff, following lock Craig Quinnell, who had a brief intermediary period with Worcester before his move.
Cardiff coach Dai Young told the Western Mail: "Bringing Tom back to Wales shows what we are about.
"We want to be competing at the highest level, and if you are going to do that you've got to have quality players.
"Tom has made the right noises as well. He wants to come back to Wales and play in the new system here."
Back rower Thomas makes the move across the Severn from Bath, the 27-year-old having won nine caps for Wales between 1996-8, helping Bath to narrowly survive relegation from the Zurich Premiership this season.