Roger Federer admitted that he was lacking “punch” after he was turfed out of the Shanghai Masters semi-finals on Saturday by 13th-seeded Borna Coric.

The Croatian stunned the Swiss great 6-4, 6-4 in what was an unusually error-strewn performance from the 20-time Grand Slam champion.

The 21-year-old Coric will face Novak Djokovic in Sunday’s final after the Serb thrashed Alexander Zverev 6-2, 6-1, leapfrogging Federer to number two in the world rankings.

Federer has not been at his best all week, dropping sets in the two opening matches of his wobbly title defence.

The 37-year-old top seed was more like his old self on Friday, defeating eighth seed Kei Nishikori in two high-quality sets.

But he made a slow start against Coric, ranked 19 in the world, getting broken in the first game.

There was a subtle shake of the head when Federer similarly lost his serve at the start of the second set.

“I thought he was better, I think he had more punch on the ball. He served better,” said Federer, proclaiming himself pleased overall with his form.

“I feel like I’m explosive out there, returning well,” he added.

“Serving, I think, it’s okay, could be even a little bit better.

“I don’t think I played a match where I didn’t get broken, so that’s something a bit more unusual for me.”

In contrast, Coric – who is into his first Masters 1000 final – was largely untroubled on his serve.

Federer won the Australian Open at the start of this year but has had a mediocre season by his sky-high standards.

He exited the US Open in the last 16 at the hands of unheralded Australian John Millman, ranked 55th, and only made the quarter-finals at Wimbledon.

Coric, who has only two career titles to his name, has now beaten Federer twice – the previous time was in the final at Halle this year.

Celebrating his 1,000th match in style, the 14-time Grand Slam winner Djokovic was clinical against a shell-shocked Zverev.

Djokovic will be up to second in the world when the new rankings are released on Monday, but he is desperate to take injured Rafael Nadal’s number one spot before the year is out.