After spending last season on loan at Stoke, the Wales international found a new club, joining the Robins on a short-term deal
Williams was available on free transfer after having been released by the Toffees following the end of the 2018-19 Premier League season.
Bristol City announced Williams has joined on a deal through January, with an option to extend it that month through the rest of the year.
Williams spent last season in the Championship, on loan at Stoke City playing in 33 games for the Potters, making 27 starts and scoring one goal.
“I’d like to offer Ashley a very warm welcome,” Bristol City manager Lee Johnson said in a statement. “His experience will be invaluable, both on and off the pitch, and we’re all looking forward to getting to work with him.”
The 35-year-old Wales international has enjoyed spells in the Premier League with Swansea and Everton during a long career which began at non-league club Hednesford Town before moving to Stockport County.
Williams made the move to Swansea in June 2008 for £540K and would spend eight seasons with the Welsh club, seeing their rise from League One all the way to the Premier League.
He also earned silverware with Swansea, capturing the 2012-13 League Cup with the Swans.
However, prior to the start of the the 2016 season, Williams made the £12.7 million ($15.6m) move to Goodison Park.
Williams featured 36 times for the Toffees in his debut season for the club scoring a goal. However, his playing time dipped in his second year with Everton, featuring in just 24 games for the club.
With no place in the Everton squad last season, Williams made the season-long move to Stoke where he featured 33 times for the Potters, who finished 16th.
Article continues below
Overall, Williams has made 241 appearances in the English top-flight over his time with Swansea and Everton, scoring six times.
They face Hull City on Saturday, looking to make it three wins in three straight games.