Grigor Dimitrov ended a seven-match losing streak against Rafael Nadal at the China Open on Friday to book his place in the semi-finals with a 6-2 6-4 victory.
The Bulgarian had never beaten the 14-time grand slam champion ahead of their quarter-final in Beijing but he quickly set about putting that right.
Dimitrov's athleticism helped keep every point alive to frustrate Nadal - champion in 2005 - and force the Spaniard into a number of errors.
Neither player managed to hold serve early on but from the fifth game onwards Dimitrov found his form, rattling off six in a row to move a set and a break up.
Nadal had to save five more break points as Dimitrov turned the screw, the 25-year-old sealing victory on his second match point with a crisp winner.
Dimitrov will meet Milos Raonic in the last four after the third seed secured two victories in the same day due to previous rain delays.
Having beaten Malek Jaziri 6-3 6-4 in the second round, the Canadian then strolled past Pablo Carreno-Busta, who had triumphed over Richard Gasquet earlier in the day, 6-4 6-4.
Andy Murray will meet David Ferrer in the second semi-final after they recorded victories over Kyle Edmund and Alexander Zverev respectively.
Murray has never made the final in Beijing before, his best performance coming in 2014 when he lost to eventual champion Novak Djokovic in the semi-finals.
He has a chance to go one better this year after beating Davis Cup team-mate Edmund 7-6 (11-9) 6-2, Murray taking control after a very tight opening set to claim a 58th win of the season.
"He [Edmund] made it very tough for me," said the world number two. "He's improving at a solid pace now.
"Every match against him, he certainly makes you earn it."
Murray's recent record against Ferrer suggests he could make it to Sunday's final, the Brit having won their last six encounters.
The Spaniard will not be a pushover, though, having shown his battling qualities to come from a set down to beat Zverev 6-7 (4-7) 6-1 7-5.