A-League journeyman Williams joined City in the 2011-2012 season after stints with North Queensland Fury and Queensland Roar.
He made a record 101 A-League appearances for City and scored 21 goals across five seasons.
The 27 year-old's standout season came during 2013-2014, headlined by a 12 goal haul in 26 matches, and set a Melbourne City club record for most goals scored in a season in the process.
Williams also became the first player in City's history to reach the 100 match milestone, coming on as a substitute in this season's round 14 win over Western Sydney Wanderers.
The versatile attacker has been a consistent presence in City’s first-team and a fan-favourite.
Coach John van 't Schip said he would like to wish Williams all the best for the future.
"David’s contribution speaks for itself – to have played over 100 matches for the Club makes him one of our most recognisable players," van’t Schip said.
"On behalf of the Club and the fans, we would like to wish David all the best in the next chapter of his career."