Defending champion Roger Federer is out of Wimbledon after eighth seed Kevin Anderson fought back from two sets down in a gripping quarter-final.
Top seed Federer, who was aiming for a record-equalling ninth singles title, missed a match point in the third set.
It proved pivotal as the South African recovered to win 2-6 6-7 (5-7) 7-5 6-4 13-11 in four hours and 13 minutes.
The 2017 US Open finalist will meet Canada's Milos Raonic or American John Isner in his first SW19 semi-final.
Eight-time champion Federer has already won more Wimbledon singles titles than any other man, but was aiming to equal Martina Navratilova's all-time record.
Defeat also ended the Swiss' chance of a romantic reunion in the final with second seed Rafael Nadal in the final. It would have happened on the 10th anniversary of their epic meeting in the 2008 final.
'Match of Anderson's life'
Federer, who turns 37 next month, had been utterly dominant on his way to the last eight, swatting off Dusan Lajovic, Lukas Lacko, Jan-Lennard Struff and Adrian Mannarino in a combined total of little more than six hours on court.
But Anderson finally made the 20-time Grand Slam champion look human in unfamiliar territory on Court One, where the Swiss had not played in three years.
The 32-year-old became the first opponent to win a service game, and then a set, against Federer at this year's Championships.
Anderson continued to grow in confidence and stature as the match wore on, holding his nerve to earn his first win over Federer in five attempts.
"He played the match of his life," said former Wimbledon champion Boris Becker.
It was an absorbing battle full of surprise, suspense and swings of momentum - unquestionably the match of the men's singles tournament so far.
Fed Express halted after strong start
Nobody could have predicted the trouble that lay ahead for Federer after he cruised to the opening set, taking Anderson's serve in the first game and again in the seventh.
Federer's serve had been untouched in the tournament until Anderson, who won just one receiving points in the opener, took it in the second game of the second set.
It was the first time in 85 games that Federer had lost his serve - the previous occasion being against Tomas Berdych in last year's Wimbledon semi-final.
He moved into a 3-0 lead and, after Federer wiped out that advantage in the fifth game and levelled at 3-3 in the next, blew another break point in the seventh.
A forehand should have been sent down the line by Anderson, instead it hit the net and allowed Federer to go on to hold.
Federer took control of the tie-break and, despite missing a couple of opportunities before clinching the second set, it looked likely he would not only make the last four but also create a new record of winning 35 successive sets at SW19.
Focused Anderson earns 'special' win
Anderson is one of the biggest servers on the ATP Tour, but could not find his rhythm in the opening two sets, during which he landed just 56% of his first serves and won 66% of those points.
But as Anderson began to increase those percentages, and his number of aces, Federer started to misfire.
Federer's forehand began to let him down, most importantly on the match point he earned at 5-4 in the third set, allowing Anderson to survive.
From that point, the South African never looked back.
He consistently outfought Federer from the baseline, leading to him claim the only break point of the fourth set and take the match into a decider.
Federer missed a break point at 4-3 in the decider and, as he continued to make forehand errors, Anderson's unwavering focus looked to be tipping the match in his favour.
Finally he got the breakthrough when Federer produced his first double fault of the match at 11-11, serving out to become the first South African man to make the last four at Wimbledon since Kevin Curren in 1983.
"Matches like that are very special - beating Roger is one I am going to remember, but hopefully there are two more matches still to play," said Anderson.
Have your say
More Sports Headlines
- Atletico overcome VAR setbacks to beat Juventus
- Late goals give Manchester City 3-2 win at Schalke
- Boateng off to China as Levante announce transfer to Dalian Yifang
- Joshua Clottey’s return after three years motivated by regaining title
- 2019 Standard Chartered Trophy launched
- Khedira out of Juve game with Atletico due to irregular heartbeat
- Mukarama receives U-17 World Cup Golden Boot and Bronze Ball
- Barcelona fail to take chances against battling Lyon
- Liverpool frustrated by Bayern in Anfield stalemate
- GFA Elections: NC denies Master Degree requirement reports
- Supercopa de Espana: New four-team tournament set to be played abroad
- Hearts boss Kim Grant unhappy with lack of competitive football
- Kotoko coach reiterates CAF Confed knockout stage target
- Solskjaer praises Pogba as one of 'best attacking midfielders in the world'
- Sarri feels the heat as Chelsea fans turn on Italian coach