Louis Oosthuizen will take a one-shot lead into the final round of the 149th Open as a shocking late miss left Jordan Spieth with an uphill task at Royal St George's.
Oosthuizen, who was two ahead at halfway thanks to a championship record total of 129, shrugged off a slow start to remain on course for a second Open title as the first wire-to-wire winner since Rory McIlroy in 2014.
A third round of 69 took the South African to 12 under par and a shot ahead of playing partner Collin Morikawa, whose 68 maintained his bid to win the US PGA and Open on his tournament debut.
Spieth's challenge faltered badly with dropped shots on the last two holes, the three-time major winner amazingly missing from two feet for par on the 18th and running off to sign his card before heading straight to the practice putting green.
At nine under par, Spieth trails Oosthuizen by three shots, with Corey Conners and Scottie Scheffler on eight under and Jon Rahm, Dylan Frittelli and Mackenzie Hughes a shot further back.
On a day when a combination of tough pin positions and a drying course made scoring difficult, Spieth birdied the second and fourth and recovered from a dropped shot on the fifth with further gains on the sixth and seventh to move into a share of the lead.
That proved short-lived, however, as Oosthuizen ended a run of six straight pars by also two-putting the par-five seventh for birdie before another gain on the ninth restored his overnight advantage.
At this point Morikawa was still four shots off the pace despite recovering from two early bogeys with birdies on the seventh and eighth, but as Oosthuizen and Spieth faltered, Morikawa birdied the 13th and 14th to make it a three-way tie.
Oosthuizen edged back in front with a birdie on the 16th and the 2010 champion parred the final two holes to edge closer to an overdue second major title, the 38-year-old having taken his unwanted tally of near misses to six by finishing second in both the US PGA and US Open this season.
"I was definitely not swinging it freely today, I was all over the place with iron shots and it felt like I kept it together at the end there," Oosthuizen told Sky Sports.
"The R&A weren't happy with the low scoring and they put some pins out there which were questionable. (But) I'm very excited, it is a great position. I need to play well tomorrow and see if I can get rid of those loose swings."
Rahm, who birdied the last two holes at Torrey Pines last month to pip Oosthuizen to the US Open title, agreed with the South African's assessment of the pin positions, despite playing his final seven holes in three under to keep his hopes alive.
"Because of the weather conditions it's easy to think it could have been a little bit better, but the pin locations were no joke," the Spaniard said.
"I don't know if on TV you could appreciate it, but those are some of hardest pin locations collectively I've ever seen."
Paul Casey and Andy Sullivan headed the fading English challenge on five under, with defending champion Shane Lowry on the same score following two late birdies in his 69.
Scotland's Robert MacIntyre was four under after completing a 65 in brilliant fashion with a birdie on the 18th, the left-hander holing from 60 feet from a similar location to where Sandy Lyle almost came to grief on the 72nd hole of his title win in 1985.
"Obviously it was a bonus there at 18," said the 24-year-old, who was sixth on his Open debut at Royal Portrush in 2019 and has made the cut in all seven of his major appearances to date.
"You are not expecting to hole that, you are just trying to get down in two. But my pace was great all day and I managed to put good pace on it, had a decent line and it went in."
The anticipated charge from the likes of world number one Dustin Johnson and four-time major winner Brooks Koepka failed to materialise, Johnson carding a 73 and Koepka shooting 72 to lie four and three under respectively.
Bryson DeChambeau, whose complaint following his opening round that his driver "sucks" prompted an angry response from his club manufacturers, was in the second group out on Saturday and shot 72 to finish three over.