After Robertson went 3-1 up, posting a break of 141 along the way, Selby fought back, with a 136 clearance helping him move 4-3 ahead.
The match then drew level again at 4-4, before Selby wrapped things up with runs of 104 and 85.
It was the first time in eight meetings between the former world champions that Selby had triumphed.
And the 39-year-old - who had not made a final since claiming the world title in 2021 - said in quotes on wst.tv: "The last few times Neil has beaten me I have played OK, I just haven't had enough chances to win the match.
"Today I took virtually every chance from 3-1 down. He is the best player in the world at the moment, the standard he is playing is phenomenal, so to beat him you have to be at the top of your game.
"From 3-1 to 3-3, Neil missed a couple, which is probably the first time he has missed a ball against me since the Romans were building the roads.
"Then from 4-4 I played well in the last two. I have been working hard and playing well in practice. That means nothing unless you are taking it out there to the match table. I have done that this season in patches and got to a few quarter and semi-finals. I'll be out there fighting (on Sunday)."
The other semi-final saw Brecel get past Mark Allen 6-2, with the Belgian, whose highest break was 89, leading 5-0 before his opponent got off the mark.