In addition to the excellent points @naruto made about scale and level of formalism, here are some additional elements I collected from native speakers.
都会 is an abstract concept while 都市 is about individual large cities.
都会 cannot be counted, while 都市 can, as in 「東北地方にいくつかの都市があります」.
都会 is the opposite of 田舎. 都市 does not have an opposite. It is a stage beyond 集落, 村, and 町. Hence the story called 「田舎のネズミと都会のネズミ」.
The borders of 都会 are vague, while a 都市 has clear, official borders.
都会 is a kind of environment, characterized by '賑やか', '人が多い', '夜でも明るい', the presence of buildings, and so on. It is strongly associated with a lifestyle, that's why you can say 「都会暮らしは大変」but not 「都市暮らし」. You can say 「都会に住みたい」but not 「都市に住みたい」. In the same vein, 都会的 exists, but not 都市的.
都市 is about the cities themselves, not a fuzzy concept. 未来都市 makes sense, but 未来都会 does not. 「東京は日本で一番大きい都市です」