Williams made his 2016 season debut on March 13, as Toronto played away to his former club, New York City FC. He was named on the bench, and replaced Will Johnson in second half stoppage time to help preserve a 2–2 draw. Williams started just 11 matches on the season, his lowest total since 2011 with Columbus, but Toronto won in eight of those starts. He appeared for the final time on the season on August 24, starting a 2–1 victory away to Orlando City. Williams did not appear in any of Toronto's last eight regular season matches as the club qualified for the playoffs for a second season in a row. He was named on the bench for all six of Toronto's playoff matches, including MLS Cup 2016 against Seattle Sounders FC, but did not make an appearance in any match. Williams finished the season with 15 appearances, all in league play. At the end of the year, Williams' contract expired, and was not renewed by the club. He departed Toronto having made 28 appearances across two seasons.