Williams was waived by the Dallas Mavericks on Thursday and cleared waivers on Saturday, making him a free agent.
The Cavaliers signed Williams to the veteran minimum salary for the rest of this season, giving the Cavaliers a veteran backup point guard.
The 32-year-old Williams played 40 games, all as a starter, for the Mavericks this season. He averaged 13.1 points, 6.9 assists and 2.6 rebounds in 29.3 minutes.
This is the 12th NBA season for Williams, a three-time All-Star.