"I think every year you feel more mature".
The Swiss was leading head to head meetings 2-1 as he had won in 2015 Halle and this year's Indian Wells, but Coric had proved to be very competitive as he defeated Federer in the Halle final on grass. "He served better", said Federer, proclaiming himself pleased nevertheless with his form.
The 37-year-old Federer was forced to battle through the first two matches of his title defence, first to Daniil Medvedev and then Roberto Bautista Agut.
"But regardless, I think the court allowed for great ball striking".
"I was looking up to him since I was really, really young", he said, calling the upset over Federer one of his best results.
"Like I said, I think I will try to take a decision on the clay towards maybe before - well let's say while I'm on vacation after London (ATP Finals November 11-18)".
Three-time Shanghai Open victor Djokovic stormed past German Alexander Zverev 6-2 6-1 in Saturday's earlier semi and claimed the world number two ranking from Federer.
He's is on a 17-match winning streak and is 26-1 in matches played since the start of Wimbledon.
Federer, competing in his first ATP tournament since a shock last-16 exit at the U.S. Open, struggled for control against Coric's bludgeoning returns as the 13th seeded Croat clinched another early break to reach his first ATP Masters final.
The 31-year-old from Serbia is in blistering form, winning Wimbledon, the Cincinnati Masters and US Open in recent months, after having elbow surgery in February.
"And where I was about four months ago and where I am today is quite an extreme opposite".
"I did what, 24 unforced errors and seven winners?" Coric won 84% first serve points to reach his maiden Masters 1000 final and book a fascinating clash against the Serb Novak Djokovic.
The victory gave 21-year-old Zverev a tour-leading 49th match win of the year. Zverev threatened to unravel and conceded the set in barely 30 minutes after landing a routine smash into the net, to gasps from the arena.
Coric went on to seal the set in 34 minutes and it was deja vu in the first game of the second, as Coric broke again.
An increasingly exasperated Zverev issued more punishment to his racquet at 3-1 down in the second, earning a code violation and tossing the battered piece into the crowd.