Richardson headed into the final 20 metres at the Letzigrund Stadium in third behind Saint Lucia's Olympic champion Alfred and Britain's Dina Asher-Smith.
But the American stayed strong and focused on the line, producing a savage dip for first place in 10.84 seconds, 0.04sec ahead of Alfred.
"I am training and executing because I know the race is not going to take care of itself," said Richardson.
Asher-Smith, who failed to make the 100m final in the French capital, rounded out the podium in 10.89sec.
Alfred had no complaints about the result, saying the race "felt good."
"I am just having fun. I am trying to finish strong. I really have not had the chance to take my medal in," she said.
"After Paris I went back to Texas, did some training. It has been up and down, I am still working on the fine-tuning."
Alfred's gold in Paris was the first-ever Olympic medal of any colour for her tiny Caribbean island homeland.
And she said she was now looking to the Diamond League finals in Brussels next week and then returning home for some proper celebrations.
"In Brussels, I will not run the double, just the 100m," she said.
"My aim is nothing in particular, just to finish strong. I am looking forward to going to Saint Lucia, just to celebrate with my country."