Down a set and a break in the second set and down a break twice in the final set, somehow defending champion Roger Federer found a way to battle into the final of the BNP Paribas Open in Indian Wells with a stunning three-set win over Borna Coric on Saturday.

The five-time Indian Wells champion appeared off his game for large stretches of the match, but never allowed his opponent to run away with it, building moment late in the last two sets to seal the victory.

Coric, who was contesting his first Masters 1000 semifinal, did not appear overawed by the occasion, but he could not finish the job as he let three leads slip away. Despite trailing for the majority of the match, it was the world number one Federer winning the epic semifinal clash 5-7, 6-4, 6-4.

Coric surprises Federer late

For most of the opening set, it was all about the serve. Both men dominated their first five service games, facing little opposition from the returner. Through the first ten, the closest games were holds to 30. Five-time Indian Wells champion Federer was completely dominant, winning his first ten service points and 20 of 23 on his service on their way to 5-5.

Borna Coric celebrates a point during his near-upset of Federer. The Croatian led for much of the match, but choked in the big moments. Photo: Harry How/Getty Images
Borna Coric celebrates a point during his near-upset of Federer. The Croatian led for much of the match, but choked in the big moments. Photo: Harry How/Getty Images

It was completely shocking when seemingly out of nowhere, the Swiss threw in a weak game at five-all, falling behind 30-40. Federer saved that break point with a big serve, but quickly fell behind break point again and this time, Coric drew an error with a good passing shot to take the lead.

While not quite as dominant as the defending champion, the Croatian had cruised on serve all set and showed no signs of nerves serving for the set. He raced ahead 40-love and converted his second set point to take the opening set. 

Federer stages late comeback

Coric took full advantage of the momentum from that late break, bringing up a break point with a huge backhand in his first return game of the second set and converted with a huge forehand to take the early lead. After failing to put up much resistance on return in the opening set, Federer began to attack his young opponent’s serve as he tried to reclaim the break. In the fourth game, the Swiss had a triple break point opening, but Coric would hit three straight winners to erase the threat. He saved another break point in his next service game.

Roger Federer lunges for a volley during his semifinal battle with Coric. Photo: Matthew Stockman/Getty Images
Roger Federer lunges for a volley during his semifinal battle with Coric. Photo: Matthew Stockman/Getty Images

After saving break points in his previous two service games, Coric finally cracked under the pressure. The Croatian fell behind 15-40 in the eighth game and was a little over aggressive on an inside-out forehand, sending it wide to give Federer the break back and leveling at 4-4.

After the Swiss held to take the lead, he kept the pressure on his young opponent. Federer showed his patience at 15-30 in the next game, drawing a backhand into the net from Coric at the end of a titanic rally to set up double break and set point. The Croatian sent a forehand long to hand the set to Federer.

Persistent Federer finds a way into final

The wind picked up to start the third set, putting a stop to Federer’s momentum. The Swiss started the set slowly, falling behind 0-40 in his opening game and sending a forehand wide to give Coric an early break. However, the Croatian had seemingly lost that high level of service from the opening set. Federer set up a break point in the very next game with a huge passing shot winner and converted when, just like his first break in the second set, Coric overcooked an inside-out forehand.

The young Croatian’s serve was falling apart and, after sending a backhand long at 30-all, was staring down a potential fourth consecutive break of his serve. However, Coric finally upped his service game, catching the line for an ace before going on to hold for the first time since midway through the second set.

Federer tees off on a forehand during his semifinal win. Photo: Matthew Stockman/Getty Images
Federer tees off on a forehand during his semifinal win. Photo: Matthew Stockman/Getty Images

In the critical seventh game on Federer’s serve, Coric went on offense. He drew a volley error from the Swiss to set up a break point, but Federer saved it with a tough overhead. The Croatian kept coming, ripping a backhand winner up the line to set up a second break point and this time, Federer sent a forehand wide to give Coric yet another break lead in the final set.

Coric would have a tough time consolidating the break. He would have to battle to deuce after having a game point at 40-30. After setting up a second game point at AD-40, the wheels came off from the Croatian as the point at deuce to give him game point was the last one he would win. Federer saved the game point, ground out a rally to set up break point, where Coric double-faulted the break back. The five-time Indian Wells champion then held to love to take a 5-4 lead. The world number one was not to be stopped, as he broke Coric to love to book his place in the final, winning the last 11 points of the match.

By the numbers

There was very little separate the two men. Coric’s second serve left a bit to be desired, as the Croatian only won 49 percent of those points. Federer’s persistence paid off, as he held eleven break points on his opponent’s serve, converting five. Coric only managed to convert four break points (out of six).

Federer will go for a record sixth Indian Wells title on Sunday against a former runner-up, either 2013 runner-up Juan Martin del Potro or 2016 runner-up Milos Raonic