Thomas upset defending champion and world record holder Inge de Bruijn to win in a time of 57.72 seconds a day after she helped Australia's 4x100 freestyle relay team to gold.
Poland's Otylia Jedrzejczak finished with silver in 57.84 and de Bruijn got the bronze in 57.99.
De Bruijn, who three gold medals at Sydney four years ago, was under world record pace at the halfway stage of the final but weakened in the final few strokes as Thomas then Jedrzejczak surged past her on the wall.
Thomas almost quit swimming after the Sydney Olympics when she needed a full shoulder construction but decided to continue in the hope of winning a gold medal.
She had won minor medals at Atlanta and Sydney but started to make inroads in 2001 when she won her first world title.
On Sunday, she became the first Australian since Lyn McClements in 1968 to win the women's 100 title.