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.
|Imperious Nadal blasts past Tsitsipas into Melbourne final|
|Former Cardiff boss Solskjaer praying for good news on missing Sala|
|Sanchez to face Arsenal as Solskjaer backs Gunners fans to spur him on|
|I did nothing wrong! - Pliskova stunned by ´unbelievable´ Osaka|
|Solskjaer optimistic about De Gea, Martial contracts|
|Young ready to lead Pacers in Oladipo´s absence|
|Kvitova breaking down mental barriers in Melbourne run|
|Neymar has ´painful recurrence´ of foot injury, PSG confirm|
|Sala search begins for third day|
|Pochettino fears VAR will ´annoy´ Premier League fans|
|Osaka through to Melbourne decider after Pliskova thriller|
|Tsitsipas Souvlaki official as Australian Open star is honoured in Melbourne|
|Pacers earn big win over Raptors, Oladipo injured|
|Harden pleased to entertain Knicks fans in 61-point display|
|Kvitova overcomes extreme heat for spot in Aus Open final|
|Man United have their club back – Scholes revels in Solskjaer revival|
|Harden matches another Chamberlain feat with 61-point game|
|Capitals give up fourth hat-trick in five games|
|Durant leaving Warriors would be ´great´ for NBA, says McGrady|
|McEnroe: Serena choked in Australian Open loss|
|De Jong an ´important addition´ at Barca, says Valverde|
|´Better outcome than we originally feared´ – Agent on Anthony Davis injury|
|Pacers sweating on Oladipo injury after Indiana star leaves on stretcher|
|De Jong: I spoke to PSG and City before signing for Barca|
|Guardiola wants finals habit at Man City|
|Lakers star LeBron won´t face Timberwolves|
|Valverde doesn´t regret resting Messi despite Barcelona loss|
|In my heart and in my prayers - Ben Yedder pays tribute to missing Sala|
|Real Madrid reclaim world´s highest-earning club title from Manchester United|
|Messi absence no excuse for Barcelona loss, says Suarez|
|Humble Higuain excited by Sarri reunion|
|He must not come and cry after – Goncalves unapologetic over Neymar injury|
|Serie A record-breaker under Sarri - the Opta numbers behind new Chelsea striker Higuain|
|PSG boss Tuchel ´worried´ after Neymar sent to hospital with another foot injury|
|Coles commits to New Zealand and Hurricanes until 2021|
|Guardiola praises City mentality on ´dangerous´ Burton pitch|
|England won ´attritional´ battle, says Anderson after latest landmark|
|AEK, Brose Bamberg secure last-16 spots|
|Sevilla 2 Barcelona 0: Resting Messi backfires for Copa del Rey holders|
|Sarri: Chelsea players agree with me on motivation comments|
|Morata asked to leave Chelsea a month ago, says Sarri|
|Paris Saint-Germain 2 Strasbourg 0: Neymar suffers injury scare in Coupe victory|
|Anderson´s four-wicket haul rocks Windies|
|Burton Albion 0 Manchester City 1 (0-10 agg): Holders coast through to clinch Wembley return|
|PSG´s Neymar hobbles off in Coupe de France clash|
|De Ligt bored of Ajax departure rumours|
|Piatek completes AC Milan move after Higuain exit|
|Super Bowl LIII: Rams RBs v Patriots RBs|
|Chelsea seal Higuain loan|
|Ismaily kicked out of CAF Champions League after fans throw stones, bottles|
|England star Itoje pens new Saracens deal|
|Palace keeper Hennessey charged over Instagram post|
|Chelsea warn supporters over anti-Semitic chanting ahead of Tottenham EFL Cup tie|
|Joshua primed to make call on next opponent|
|Super Bowl LIII: Brady v Goff|
|Sala search suspended as Cardiff chairman confirms club wanted different travel arrangements|
|Cruyff, Koeman, Kluivert - De Jong following pantheon of Dutch Barca greats|
|Sarfraz apologises for comments picked up by stump mic|
|Djokovic: Pouille deserves top-10 spot|
|Hazard must be more demanding if he wants to leave Chelsea, says Ballack|
|Celtics´ Kyrie Irving to sit out Cavs game with flu-like symptoms|
|Barcelona seal €86m De Jong deal|
|Vietnam v Japan: Moriyasu happy to keep doing just enough|
|Hendricks, De Kock and Steyn join up with Proteas squad|
|Lorenzo excited for ´new level´ at Repsol Honda|
|Fernando replaces injured Pradeep in Sri Lanka squad|
|China v Iran: Queiroz wants to exorcise 2015 quarter-final|
|Balotelli joins Marseille until the end of the season|
|Emery gives Monchi ringing endorsement amid Arsenal sporting director links|
|Larry Fitzgerald returning to Cardinals on one-year deal|