Williams, 50, will become the oldest ever participant in a World Championship final.
He beat Judd Trump 17-14 in the semi-final to confirm his progression, rallying back after falling to a 7-3 deficit in the early stages.
He had previously downed John Higgins by a narrow 13-12 scoreline in the quarter-finals.
Williams said he was pleasantly surprised to have reached the final: “I’m never normally nervous at any stage, but I was in that break. I can’t believe I’m in another final – I don’t know how I’m doing to be honest.”
It was an emotional win for Williams, who had been on poor form ahead of the World Championships, citing eye problems: “I really struggled with my eyes in the past couple of tournaments and I’ve tried everything – contacts, varifocals.
“I left it for Lee to decide because he knows if I’m playing alright and how I’m hitting them, and he said he thought I was better off going without them.”
What time is Mark Williams vs Zhao Xintong?
Williams and Zhao will face off at the Crucible on Sunday afternoon.
The final is a best-of-35-frames match, and is set to start at 1pm BST on Sunday May 4, 2025. If needed, the match will finish on Monday, May 5.
TV channel: In the UK, the World Snooker Championship is being broadcast live and free-to-air across the BBC. The final will be broadcast on BBC Two.
Live stream: Williams vs Zhao will be shown in full online via BBC iPlayer and the BBC Sport website.