Williams scored more than half of Zimbabwe's first-innings total but the visitors still took a 167-run lead and ended day two 216 ahead