The 23-year-old defeated Moscow champion Andrey Rublev 7-5, 7-6 (7/4), giving the third seed a last-four clash against home favourite Dominic Thiem.
Top seed Thiem was leading Pablo Carreno Busta 5-0 when the Spaniard called it quits in their quarter-final.
Berrettini, who made the US Open semi-finals in September, will become the fourth Italian to enter the top 10 of the ATP rankings on Monday after Adriano Panatta, Corrado Barazzutti and Fabio Fognini.
"I am really happy. It was a tough match, mentally and physically," said Berrettini who will be playing in his eighth semi-final of 2019 on Saturday.
"Andrey is playing his best tennis so far. Last week, he won Moscow, so he was feeling confident and I saw it on the court."
The current world number 11 is trying to wrap up one of the two remaining spots in next month's season-ending ATP Finals in London.
Rafael Nadal, Novak Djokovic, Roger Federer, Daniil Medvedev, Thiem and Stefanos Tsitsipas have already booked their places in the London showpiece.
Highlights Matteo Berrettini