The world number two won 6-4, but at one stage he was 5-1 ahead and on a break of 53, looking as though he would record a straightforward victory.
The match turned when Trump missed a red, Williams punished him and soon threatened to force a deciding frame.
But UK champion Trump kept his composure and when a chance came his way in the 10th frame the 23-year-old strung together a tidy 58.
That was enough to finish off Welshman Williams, the two-time former world champion this time seeing no way back.
Trump said: "I felt I played a lot better and I dominated the match to go 5-1 up. Then Mark turned things around and every time I thought I had him in trouble, he got out of it.
"It was getting tense at 5-4 so I was really pleased to get over the line. I'm here to win it and I fancy my chances in the final."
John Higgins or Shaun Murphy will stand in his way tomorrow, but Trump fears neither man.
He and fellow left-hander Williams put on an absorbing show and the scoring was impressive, with Trump firing breaks of 62 and 82 to lead 2-0, and 3-0 was on the cards until the Bristol cueman broke down on a run of 53.
Williams fired in a 79 to take the frame, but Trump responded with 76, 62 and 82 to move one frame away from victory.
Failure to convert the half-century break he made in frame seven to a match-deciding clearance seemed as though it might prove costly to Trump as Williams rifled in 66 and then battled through the next two frames to cut his arrears to one.
Trump halted the comeback though, to leave Williams disappointed.
The 37-year-old said on worldsnooker.com: "I never got a chance in the 10th frame otherwise it could have gone either way. I just tried my best and nearly got out of jail."