Federer started his slow recovery with a break for 4-5; he then saved set points to level at 6-all, winning a game in which he double-faulted twice in a row and saved a set point with an ace.
The 37-year-old was unable to control his emotions after the straight-set win over qualifier Marius Copil in the final of the ATP 500 tournament.
In Austria, fifth seed Nishikori beat Mikhail Kukushkin of Kazakhstan 6-4 6-3, while South African world number eight Anderson saw off Spain's Fernando Verdasco 6-3 3-6 6-4.
He closed the gap on the all-time singles titles list to Jimmy Connors, who leads with 109.
"It's been a magical week for me, a dream run for me", Federer said, prior to moving onto his traditional post-final pizza party with ballkids - of which he was one here two decades ago.
"I would love for it to be the beginning of my career at this level", said Copil, who played his first tour-level match in 2009.
"I came through qualifying and I didn't know what to expect but here I am", said the 28-year-old Copil. He has never lost a final to an opponent ranked below No. 87. He kept his foot on the pedal in the second, racing to a comfortable 4-0 lead but had to fight to emerge the victor.More news: NBC cancels Megyn Kelly’s morning show
"It's very hard for me to explain how it feels like", he said.
"I was hoping to serve well, get some free points".
There were five breaks of serve in the second set with three of those claimed by Simon as the Frenchman rallied to even out the scoreboard.
Federer put the pressure on Simon's serve after battling back from 15-40 down in the 10th game and Simon crumbled with two straight errors.