He would blitz the Belgian 6-1, 6-2, firing 20 winners in total, including 12 on his forehand wing and will face Juan Martin del Potro in the final.
Federer stood tall on the baseline and refused to allow Goffin to find any rhythm, firing his forehand with alacrity and using his first serve to send a message under the lights at the St.
The Swiss would take the opener 6-1 – the third time he has done so this week – with a winner off a forehand approach, and he immediately pounced as the second set got underway.
Seeking an unprecedented eighth Basel crown, Federer will next face longtime rival del Potro on Sunday.
Del Potro prevailed in four sets in the US Open quarter-finals, with Federer exacting revenge earlier this month at the Shanghai Rolex Masters.
He is riding a nine-match win streak since falling to del Potro in New York, coming off a second title run in Shanghai.
He trails Rafael Nadal by 1,660 points in the Emirates ATP Race To London and would need to win the title in Basel and also lift the trophy at both the Rolex Paris Masters and Nitto ATP Finals.