Casper Ruud defied the odds to upset Andrey Rublev and set up a semi-final showdown with Daniil Medvedev at the ATP Finals.

The 22-year-old world number eight came from a set down to take a deciding set tie-break and secure a first career victory over Rublev at the fifth attempt, as well as a first win over a top-10 player on a hard court.

The first Norwegian to appear at the event, Ruud is now the first Scandinavian to reach the last four since Sweden's Robin Soderling in 2009.

In what was a winner-takes-all clash, a thrilling 2-6 7-5 7-6 (7-5) victory looked inconceivable after fifth seed Rublev dominated the first set, dropping just four points on his potent serve.

Ruud, by contrast, won only 16 of his 32 service points as the set slipped away in 34 minutes.

But just as he had against Cameron Norrie in his previous match, Ruud upped his level in the next.

He retrieved an early break to prompt Rublev to hurl his racket to the floor, and then pounced on a weak service game to level the match.

A nip-and-tuck deciding set swung the way of Ruud in the tie-break when he gobbled up a poor second serve and then finished the job with an ace.

"It’s tough, the court is playing very fast and Andrey rips the ball faster than anyone else," said Ruud in his on-court interview.

"It’s not easy against him, he makes you run all the time so I had to fight fire with fire.

"Maybe he had the pressure on him in this match, he has beaten me four times and maybe he saw a good opportunity to reach the semi-finals."