The Swiss beat 49th-positioned Coric 5-7 6-4 6-4 at Indian Wells.
The win was Federer's seventeenth of the year, outperforming his past vocation best of 16 continuous triumphs in 2006.
He will confront Argentina's Juan Martin del Potro in the last after the 6th seed's determined 6-2 6-3 prevail upon Canada's Milos Raonic.
Protecting champion Federer is looking for a record 6th title at Indian Wells however he should conquer the man who beat him at the US Open a year ago.
He has won 39 of 43 sets this year and asserted titles at the Australian Open and the ATP occasion at Rotterdam
Federer began gradually against Coric and sent a drop shot into the net to enable Coric to serve for the opening set.
The Croat dropped only seven focuses on his fill in as he turned into the principal individual in nine matches at Indian Wells to take a set off Federer.
Coric softened Federer's serve up the opening round of the second set yet Federer constrained his way back in, before a long forehand from Coric gave him the set.
Indeed, Coric softened right on time up the third set yet Federer wiped out the break in the following diversion.
Coric approached a staggering win when he softened up the seventh session of the match, yet a slip on his serve enabled Federer to win the last 11 focuses and assert triumph.
