Roger Federer pulled off a stunning fightback to beat Borna Coric 5-7 6-4 6-4, reaching the Indian Wells Masters final and maintaining his perfect record in 2018.
This was the world number one's 17th consecutive win to start the year - the best such run of his career - but no previous opponent has tested him like Coric did in California on Saturday.
Indeed, the 49th-ranked 21-year-old looked well on course for a major scalp as a run of five consecutive games saw him take the first set and break to open up a lead in the second as he closed in on just a fourth ATP Tour final.
But a few errors crept into Coric's game, the likes of which Federer routinely punishes, and a commanding lead was gone in a flash as the top seed turned the match on its head with consecutive breaks to level the contest.
Federer then came from behind to edge the third set of a compelling match and ensure there would be no repeat of Simona Halep's shock exit in the women's draw, with either Milos Raonic or Juan Martin del Potro now next up in the final.
Back from the Fed— BNP Paribas Open (@BNPPARIBASOPEN) March 17, 2018
World No. 1 Roger Federer battles back from behind to win three-set thriller over Borna Coric 5-7 6-4 6-4.
He’s through to his historic *EIGHTH* Indian Wells final. #BNPPO18 pic.twitter.com/rQrmodB9yZ
The pair were evenly matched early on as they comfortably held serve until, at 5-5, the underdog ramped up the pressure and broke Federer at the second attempt, allowing him to clinch the set in the following game after an erroneous call had initially denied him a perfectly good winner.
The Croatian broke Federer's serve in the first game of the second set, too, before maintaining control as he came charging back from 40-0 down to save the three break points and hold serve to make it 3-1.
Coric appeared to have a response to everything as he again rescued a break point in his next service game but, roared on by a partisan crowd, it was third time lucky for Federer, who was able to level the set at 4-4 and then ruthlessly punish the reeling youngster when he next served to take the match to a decider.
It looked as though the pendulum had swung again when Coric broke the Swiss to love in the opening game of the third, but back came Federer to draw level after a magnificent point in the second game.
Although Coric's resolve remained and he broke again to lead 4-3, a double-fault allowed Federer to promptly level matters.
And the veteran ultimately outlasted his opponent as Coric attempted to serve to stay in the match, nervy errors ending the unseeded talent's fight as Federer claimed the first of three match points.
"I got a bit lucky," Federer conceded on court, but he certainly earned a slice of fortune after a historic start to the season.
|Sri Lanka grind sorry South Africa into the Colombo dirt|
|Mina ready to reject offers for Barcelona stay|
|Guardiola tells Sane to use World Cup snub as motivation|
|Golovin team-mate Chepchugov drops hint over Chelsea move|
|Reed & Rose make early charges on Carnoustie ´moving day´|
|Sancho ´had a point to prove´ in Dortmund´s win over Manchester City|
|Li hits back at AC Milan owners Elliott as bitter split continues|
|Crusaders cruise past Sharks to book Hurricanes semi-final|
|Rabiot would be a great signing for Barcelona – Xavi|
|JaVale McGee: Lakers are going to be ´one of the most fun teams ever´|
|Dolphins owner Ross: National anthem policy a ´placeholder´|
|Boga leaves Chelsea for Sassuolo|
|Schurrle in talks to leave Borussia Dortmund|
|Guardiola happy with Mahrez and Man City despite loss|
|Dodgers top Brewers in Machado´s debut|
|Raptors GM apologises to DeRozan after Spurs trade|
|Manchester City 0 Borussia Dortmund 1: Gotze spoils Mahrez´s debut in ICC opener|
|United fans keeping De Gea at Old Trafford – Herrera|
|Keita: I turned down Barca and Bayern for Liverpool|
|Merritt stays ahead as rain halts Barbasol Championship|
|Roma had to sell Alisson to Liverpool, says Totti|
|Donald Trump: Kneeling players should be suspended without pay|
|Cardinals´ Carpenter makes history|
|Nationals pair Strasburg, Zimmerman activated from DL|
|Premier League-linked Plattenhardt feels at home at Hertha|
|Johnson expecting tough Granollers challenge|
|Good Luck at last! Colts quarterback fit for training camp|
|Haase humbles Rublev as Cecchinato charges on|
|Benzema hits back at ´crazy´ De Laurentiis over age jibe|
|Leeds Rhinos finally end winless streak in Super League|
|No freaky Friday for Spieth as he bounces back in round two|
|Double boost for Bouchard in Gstaad|
|Iconic Ronaldo to raise Serie A level - Roma´s Hamm|
|Brighton birthday boy March renews contract|
|Lamela hoping injuries are behind him after signing Tottenham extension|
|Where will I get my massage? - Roma´s Pallotta mocks UEFA ban|
|Rashid struck by Lightning amid speculation over Test recall|
|Major misses a mixed blessing for Fowler and Kuchar|
|Fleetwood, McIlroy and Spieth bare teeth as Kisner and Johnson lead|
|The Open 2018 diary: Fleetwood´s swinging in the rain, but it´s a slog for McIlroy|
|Fees agreed as Fabri closes in on Fulham move|
|Neymar and Mbappe have a very good relationship, claims PSG president|
|Boufal joins Celta Vigo on loan from Southampton|
|Leicester sign Ward from Liverpool amid Schmeichel speculation|
|Kisner philosophical after run-in with the Barry Burn|
|Gattuso unsure of Bonucci future|
|Verdasco, Gasquet advance but Ruud´s run is over in Bastad|
|James to remain at Bayern Munich, says Rummenigge|
|Texans QB Watson expects to be fit for training camp|
|Torpedo Moscow deny cancelling player´s contract over racist abuse|
|Napoli decry Cavani, Di Maria rumours as fake news|
|Kisner feels the Burn, Spieth on the surge|
|Woods: I could have cleaned up my round|
|Lille swoop for free agent Fonte|
|Sagan completes hat-trick after bunch sprint|
|´Amateur´ DFB needs Lahm´s help - Rummenigge|
|Horner expects Ricciardo new deal ´pretty quickly´|
|Diakhaby swaps Monaco for Huddersfield|
|Tottenham´s Lamela signs to 2022|
|Atletico´s Rodrigo excited to wear Simeone´s 14|
|F1 Raceweek: Red Bulls steal show from Mercedes but Ricciardo to start from back|
|Fakhar hits historic double hundred as Pakistan thrash Zimbabwe|
|Roma president Pallotta hit with three-month UEFA suspension|
|Hamburg extend contract of coveted youngster Jann-Fiete Arp|
|Steady start for Kisner as Woods endures mixed day at Carnoustie|
|Zach Johnson: Dustin comparisons are unfair|
|Neymar backs Tite for Brazil despite World Cup failure|
|Vinicius wants to play with ´idol´ Neymar but Perez calms transfer talk|
|One hundred not out for Els at The Open|
|Magnificent Maharaj takes eight wickets to stymie Sri Lanka|