The Swiss will play top seed Juan Martin Del Potro, who has already qualified for next month's London tournament, in Sunday's final. The Argentine battled past unseeded Frenchman Edouard Roger-Vasselin 6-4 4-6 6-2.
"Hopefully I can get my revenge on him but you know on the top of it I am playing for the World Tour finals," said Federer, who lost to Del Potro in last year's Basel title match.
"You know things are looking good. I am not qualified yet (for London) but that is not really in the back of my mind. I am just really focused on playing good finals tomorrow," he told reporters.
Third seed Federer needed to survive another mid-match dip in form and a determined challenge from his big-hitting opponent to earn the chance to win his sixth title in his hometown tournament and guarantee qualification for the season-ender.
Backed by a noisy partisan crowd, he negotiated the first set comfortably, breaking the 23-year-old Pospisil's serve twice.
But the lanky Canadian, who reached a career-high 39 in the world after a fine mid-year run, served more freely in the second set and found the corners with some explosive crosscourt ground strokes.
Pospisil looked to have the idol of his junior tennis days on the ropes when he broke serve for the second time in the match in the fourth game of the final set.
But the 32-year-old Federer brought his experience to bear, coming up with big shots on crucial points to break twice and clinch victory with an unreturnable serve down the middle.
Federer has qualified for the ATP Tour final every year since 2002, winning it six times.
COMMENTS
Comments are moderated and generally will be posted if they are on-topic and not abusive.
For more information, please see our Comments FAQ